Skip to content

overlane assistant save-skill

Save one of your assistant conversations as a skill draft for review

Updated View as MarkdownOpen in ChatGPTOpen in Claude

Turns a conversation you had with the project assistant into a skill in the standard skill format (a SKILL.md with a name and a one-line description). Anything shaped like a secret or token is removed from the text first; the result says how many were. The draft is not used by any task until it is approved with overlane skill approve. Only your own conversations can be saved.

Usage

overlane assistant save-skill conversation [--service URL] [--team TENANT_ID] [--project PROJECT_ID] --name NAME [--description TEXT] [--dry-run]

Arguments

Argument Required Description
conversation yes The conversation ID (shown in the app’s assistant panel)

Flags

Flag Type Required Default Description
--service string no The service address (default: OVERLANE_SERVICE_URL, then the project’s binding, then the hosted service)
--team string no The team (tenant) to act on (default: the one your token belongs to)
--project string no The project (default: the connected project in this directory)
--name string yes The skill’s name: lowercase words joined by hyphens
--description string no One line saying when to use it (default: the first question in the conversation)
--dry-run boolean no Print the requests and file changes this command would make, then stop. Needs no credentials.

Examples

overlane assistant save-skill c1 --name cut-a-release-candidate
overlane assistant save-skill c1 --name cut-a-release-candidate --description 'Cut a release candidate for the web app' --dry-run

Behavior

  • Effect: write (changes local or hosted state).
  • Needs credentials: yes. Uses the network: yes.
  • Supports --dry-run: yes. Accepts --force: no.
  • Machine-readable description: overlane schema assistant save-skill.

Result

With --json (the default when stdout is not a terminal) the command prints this JSON Schema’s shape on stdout.

{
  "anyOf": [
    {
      "type": "object",
      "properties": {
        "tenantId": {
          "type": "string"
        },
        "projectId": {
          "type": "string"
        },
        "skill": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "description": {
              "type": "string"
            },
            "state": {
              "type": "string"
            },
            "redactions": {
              "type": "number"
            },
            "savedBy": {
              "type": "string"
            },
            "savedAt": {
              "type": "string"
            },
            "reviewedBy": {
              "type": "string"
            },
            "reviewedAt": {
              "type": "string"
            },
            "body": {
              "type": "string"
            }
          },
          "required": [
            "name",
            "description",
            "state",
            "redactions",
            "savedBy",
            "savedAt",
            "body"
          ],
          "additionalProperties": false
        },
        "next": {
          "type": "string"
        }
      },
      "required": [
        "tenantId",
        "projectId",
        "skill",
        "next"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "dryRun": {
          "type": "boolean",
          "const": true
        },
        "service": {
          "type": "string"
        },
        "requests": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "method": {
                "type": "string"
              },
              "path": {
                "type": "string"
              },
              "body": {},
              "note": {
                "type": "string"
              }
            },
            "required": [
              "method",
              "path"
            ],
            "additionalProperties": false
          }
        },
        "commands": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "writes": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string"
              },
              "action": {
                "type": "string",
                "enum": [
                  "write",
                  "append",
                  "delete"
                ]
              },
              "description": {
                "type": "string"
              }
            },
            "required": [
              "path",
              "action",
              "description"
            ],
            "additionalProperties": false
          }
        },
        "notes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "dryRun",
        "requests",
        "commands",
        "writes",
        "notes"
      ],
      "additionalProperties": false
    }
  ]
}

See exit codes for the status the process returns.

Navigation

Type to search…

↑↓ navigate↵ selectEsc close

Overlane Agent

Ask about the docs. Answers are quoted from the pages, with links. This panel cannot change anything.

    Questions are answered in your browser from the docs index. Nothing you type here is stored or sent anywhere.