Skip to content

overlane memory confirm

Confirm a candidate memory as a person, a second observer or with CI evidence

Updated View as MarkdownOpen in ChatGPTOpen in Claude

Moves a candidate to confirmed. The principal that wrote a candidate cannot confirm it unless it is a person confirming with –basis human; a second observer or CI evidence is needed otherwise. ci_evidence needs –evidence <commit sha>:<check id>.

Usage

overlane memory confirm memory-id [--service URL] [--team TENANT_ID] [--basis second_observer|ci_evidence|human] [--evidence SHA:CHECK] [--dry-run]

Arguments

Argument Required Description
memory-id yes The candidate to confirm

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)
--basis one of second_observer, ci_evidence, human no human How it was confirmed
--evidence string no CI evidence reference, for –basis ci_evidence
--dry-run boolean no Print the requests and file changes this command would make, then stop. Needs no credentials.

Examples

overlane memory confirm mem_ab12
overlane memory confirm mem_ab12 --basis ci_evidence --evidence 0123abc:unit_tests --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 memory confirm.

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",
          "minLength": 1,
          "maxLength": 128,
          "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
          "description": "tenant identifier"
        },
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 64,
          "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$"
        },
        "scope": {
          "type": "string",
          "enum": [
            "project",
            "team",
            "user",
            "global"
          ]
        },
        "scopeId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        },
        "projectId": {
          "anyOf": [
            {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
              "description": "project identifier"
            },
            {
              "type": "null"
            }
          ]
        },
        "userId": {
          "anyOf": [
            {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            },
            {
              "type": "null"
            }
          ]
        },
        "category": {
          "type": "string",
          "enum": [
            "fact",
            "decision",
            "event",
            "procedure",
            "preference"
          ]
        },
        "title": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        },
        "body": {
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": [
            "candidate",
            "confirmed",
            "superseded",
            "expired"
          ]
        },
        "provenance": {
          "type": "object",
          "properties": {
            "observer": {
              "type": "string",
              "minLength": 1,
              "maxLength": 160
            },
            "observerKind": {
              "type": "string",
              "enum": [
                "user",
                "agent",
                "ci",
                "curator"
              ]
            },
            "observedAt": {
              "type": "string",
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
            },
            "revision": {
              "anyOf": [
                {
                  "type": "string",
                  "pattern": "^(?:[0-9a-f]{40}|[0-9a-f]{64})$"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "observer",
            "observerKind",
            "observedAt",
            "revision"
          ],
          "additionalProperties": false
        },
        "symbolLinks": {
          "maxItems": 50,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "minLength": 1,
                "maxLength": 500
              },
              "symbol": {
                "type": "string",
                "minLength": 1,
                "maxLength": 500
              }
            },
            "required": [
              "path",
              "symbol"
            ],
            "additionalProperties": false
          }
        },
        "derivedFrom": {
          "maxItems": 50,
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$"
          }
        },
        "supersedes": {
          "anyOf": [
            {
              "type": "string",
              "minLength": 1,
              "maxLength": 64,
              "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$"
            },
            {
              "type": "null"
            }
          ]
        },
        "stale": {
          "type": "boolean"
        },
        "staleReason": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 300
            },
            {
              "type": "null"
            }
          ]
        },
        "confirmation": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "basis": {
                  "anyOf": [
                    {
                      "type": "string",
                      "enum": [
                        "second_observer",
                        "ci_evidence",
                        "human"
                      ]
                    },
                    {
                      "type": "string",
                      "const": "curator"
                    },
                    {
                      "type": "string",
                      "const": "checker"
                    }
                  ]
                },
                "by": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 160
                },
                "at": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                },
                "evidenceRef": {
                  "anyOf": [
                    {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 300
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "basis",
                "by",
                "at",
                "evidenceRef"
              ],
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ]
        },
        "heldReason": {
          "default": null,
          "anyOf": [
            {
              "type": "string",
              "maxLength": 400
            },
            {
              "type": "null"
            }
          ]
        },
        "observationCount": {
          "type": "integer",
          "minimum": 1,
          "maximum": 9007199254740991
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        }
      },
      "required": [
        "tenantId",
        "id",
        "scope",
        "scopeId",
        "projectId",
        "userId",
        "category",
        "title",
        "body",
        "status",
        "provenance",
        "symbolLinks",
        "derivedFrom",
        "supersedes",
        "stale",
        "staleReason",
        "confirmation",
        "heldReason",
        "observationCount",
        "createdAt",
        "updatedAt"
      ],
      "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.