← Gabriel OperatorCONTENT HISTORYWHAT CHANGED · RULE-BASED ANALYSIS
Update to Gabriel Operator
Snapshot Sep 30, 2026 · 23:14 UTC · version 1.5.1
Collection source: not recorded for this historical snapshot.
First saved snapshot
No earlier snapshot is available to establish a change.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"description": "Interview the user and author a local Gabriel AI Persona draft covering page copy, list schema, pipeline stages, optional team-agent graph, and optional review-only workflow. Use when the user wants to design a new persona in files they control. Produces local drafts only and does not publish, provision, authenticate, or call remote services.",
"included_files": [
{
"relative_path": "agents/openai.yaml",
"size_in_bytes": 328
}
],
"name": "persona-builder",
"skill_md_contents": "---\nname: persona-builder\ndescription: Interview the user and author a local Gabriel AI Persona draft covering page copy, list schema, pipeline stages, optional team-agent graph, and optional review-only workflow. Use when the user wants to design a new persona in files they control. Produces local drafts only and does not publish, provision, authenticate, or call remote services.\n---\n\n# Persona Builder\n\nDesign one Gabriel AI Persona as local draft files for human review.\n\nThis public skill covers the same draft files as `digital-twin-page`,\n`list-builder`, `pipeline-builder`, and `team-agents`. It does not create live\nGabriel resources. Live create, git bind, and publish stay in Gabriel Operator\nafter the user reviews these files.\n\n## Public authoring boundary\n\n- Work only in the repository the user explicitly selects.\n- Write local draft files only. Do not commit, push, publish, deploy, or run.\n- Do not request, infer, copy, or store passwords, API keys, access tokens, cookies, or session data.\n- Do not call remote APIs, open Gabriel Operator in a browser, or sync live records.\n- Do not add real personal, confidential, financial, or authentication data.\n- Use placeholder ids such as `page_example`. Do not invent production database ids.\n- If the user asks to provision, publish, or authenticate, refuse and point them to Gabriel Operator.\n\n## Interview\n\nCollect, propose, confirm, then write files. Do not dump empty JSON and stop.\n\n1. Ask what the persona does if the user did not already describe it.\n2. Propose a title, short description, visibility (`private` default), list columns, pipeline stages, and whether a team-agent graph or a review-only workflow is needed.\n3. Confirm the proposal.\n4. Write the files below.\n5. Summarize the files changed and note that live create/publish is a separate user action.\n\n## Canonical files\n\n```text\nassets/chat-config.json\nassets/list.json\nassets/pipeline.json\nassets/team-agent.json\nassets/task-orchestration.json\nassets/workflow.json\n```\n\nWrite `chat-config.json`, `list.json`, and `pipeline.json` for every new persona.\nWrite team-agent and workflow files only when the confirmed proposal includes them.\nPreserve unknown fields and stable ids when a file already exists.\n\n## Page copy (`assets/chat-config.json`)\n\nSupported fields only: `pageProfile.title`, `pageProfile.description`,\n`pageProfile.longDescription`, `pageProfile.profilePicture`,\n`pageProfile.bannerImage`, `pageProfile.bannerType`, `pageProfile.tags`,\n`pageProfile.category`, `pageProfile.subcategory`, `publishedConfig.name`,\n`publishedConfig.firstMessage`, `publishedConfig.systemPrompt`.\n\nKeep conversational instructions clear and non-deceptive. Do not claim tools,\nconnectors, or live data this draft cannot provide.\n\n```json\n{\n \"schemaVersion\": 1,\n \"pageId\": \"page_example\",\n \"publishedConfig\": {\n \"name\": \"Assistant\",\n \"firstMessage\": \"How can I help?\",\n \"systemPrompt\": \"Answer using the material supplied by the user.\"\n },\n \"pageProfile\": {\n \"title\": \"Assistant\",\n \"description\": \"A helpful digital twin\",\n \"tags\": []\n },\n \"updatedAt\": 0\n}\n```\n\n## List schema (`assets/list.json`)\n\nEdit schema only. Do not import or write live records. Column types: `text`,\n`number`, `boolean`, `date`, `select`. Use `options` only on `select` columns.\n\nAdditional lists, if requested, go in `assets/lists/<slug>.json` with the same shape.\n\n```json\n{\n \"schemaVersion\": 1,\n \"listId\": \"list_example\",\n \"list\": {\n \"id\": \"list_example\",\n \"name\": \"Example List\",\n \"description\": \"Review-only list schema\",\n \"collectionId\": \"collection_example\",\n \"columns\": [\n {\n \"key\": \"title\",\n \"label\": \"Title\",\n \"type\": \"text\",\n \"required\": true\n }\n ]\n },\n \"commitMessage\": \"Draft list schema\"\n}\n```\n\n## Pipeline (`assets/pipeline.json`)\n\nOne pipeline is one state-machine draft. Stages are metadata. Transitions are\nallowed moves. Do not run the machine or modify live records.\n\n```json\n{\n \"schemaVersion\": 1,\n \"pageId\": \"page_example\",\n \"pipelineId\": \"pipe_example\",\n \"pipeline\": {\n \"id\": \"pipe_example\",\n \"pageId\": \"page_example\",\n \"name\": \"Example Pipeline\",\n \"collectionId\": \"collection_example\",\n \"columns\": [\n {\n \"id\": \"col_title\",\n \"key\": \"title\",\n \"label\": \"Title\",\n \"type\": \"text\",\n \"required\": true,\n \"order\": 1\n }\n ],\n \"stages\": [\n {\n \"id\": \"stage_new\",\n \"name\": \"New\",\n \"type\": \"start\",\n \"description\": \"Initial stage\"\n },\n {\n \"id\": \"stage_done\",\n \"name\": \"Done\",\n \"type\": \"end\",\n \"description\": \"Completed stage\"\n }\n ],\n \"transitions\": [\n {\n \"id\": \"tr_start_to_done\",\n \"name\": \"Complete\",\n \"fromStageId\": \"stage_new\",\n \"toStageId\": \"stage_done\",\n \"trigger\": \"manual\"\n }\n ]\n },\n \"taskIds\": [],\n \"commitMessage\": \"Draft pipeline definition\"\n}\n```\n\n## Team agent (optional)\n\nEdit `assets/team-agent.json` and `assets/task-orchestration.json` only.\nUse declarative local nodes and edges. Do not add browser automation, desktop\ncontrol, shell execution, credentials, or live connector secrets.\n\n```json\n{\n \"appId\": \"app_example\",\n \"endpointId\": \"endpoint_example\",\n \"endpoint\": {\n \"id\": \"endpoint_example\",\n \"slug\": \"example-endpoint\",\n \"name\": \"Example Endpoint\",\n \"workspace\": {\n \"nodes\": [\n {\n \"id\": \"node_start\",\n \"type\": \"start\",\n \"label\": \"Start\",\n \"config\": {\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {}\n }\n }\n },\n {\n \"id\": \"node_output\",\n \"type\": \"output\",\n \"label\": \"Output\",\n \"config\": {}\n }\n ],\n \"edges\": [\n {\n \"id\": \"edge_start_output\",\n \"source\": \"node_start\",\n \"target\": \"node_output\"\n }\n ]\n }\n },\n \"commitMessage\": \"Draft team-agent endpoint\"\n}\n```\n\n```json\n{\n \"schemaVersion\": 1,\n \"mappings\": [],\n \"commitMessage\": \"Draft task orchestration\"\n}\n```\n\n## Workflow (optional)\n\nEdit `assets/workflow.json` only. Supported review-only steps: `navigate`\n(with `disableBrowser: true` and empty `url`), `wait`, `llm`, `confirmation`,\n`api_output`. If the user needs any other action, describe it in the handoff\ninstead of adding it.\n\nKeep every step field at the step root. Give each step a unique `stepId` and\nsequential `step_number`.\n\n## Finish\n\nValidate JSON syntax, unique ids, and transition/edge references locally.\nReport the files changed. Tell the user these are drafts until they create and\npublish the persona in Gabriel Operator.\n\n## Live create in Gabriel Operator\n\nThis review pack does not collect tokens or call Gateway. For a live persona:\n\n1. Sign up at https://gabrieloperator.com/signup\n2. Open **Workspace → Dashboard** and copy a Gabi token from the **Gateway API key** pill\n3. Connect GitHub on the same account\n4. Connect that token to ChatGPT/Codex MCP (`Authorization: Bearer gabi_…`) or `GABRIEL_TOKEN`\n5. Use the live Persona Builder pack, not this local-draft skill\n\nDo not request, store, or use the token inside this skill.\n\n## UI fallback for live configure\n\nIf the user needs a live setting this pack cannot draft in files (Composio keys,\nArcade/Nango/Scalekit, GitHub connect, voice BYOK), send them to the UI after a\nreal page exists. Do not collect those secrets here.\n\nPersonal workspace (same destination as **Configure** on the persona page):\n\nhttps://gabrieloperator.com/workspace/edit-persona/{pageId}\n\n- Composio keys: `?tab=simulated-world` then expand **MCP connectors**\n- GitHub: https://gabrieloperator.com/workspace/developer-settings\n\nGive the full URL. Name the tab and the control.\n"
}SHA-256 of public snapshot: 7c942a4d3280421a503c3dafac22aeea527d01e9cab8cc2600cfcf82bcffb335