Guide contents

project_tool_create

Purpose and availability

Build-only candidate-scoped project tool lifecycle; bounded isolated execution, no host/network access or engineering approval.

Before invocation

Inspect the current definition and exact version/project binding before invoking. Required fields, enums, bounds and consent fields below are authoritative. Omit no required input and do not invent unavailable values.

Exact input schema

{
  "additionalProperties": false,
  "properties": {
    "payload": {
      "additionalProperties": false,
      "properties": {
        "license_spdx": {
          "type": "string"
        },
        "license_text": {
          "maxLength": 65536,
          "minLength": 1,
          "type": "string"
        },
        "manifest": {
          "additionalProperties": false,
          "properties": {
            "description": {
              "maxLength": 512,
              "minLength": 1,
              "type": "string"
            },
            "entrypoint": {
              "const": "tool.py"
            },
            "input_schema": {
              "type": "object"
            },
            "name": {
              "maxLength": 64,
              "minLength": 1,
              "type": "string"
            },
            "output_schema": {
              "type": "object"
            },
            "permissions": {
              "items": {
                "enum": [
                  "project.read_receipts",
                  "project.write_staged_report"
                ]
              },
              "type": "array",
              "uniqueItems": true
            },
            "schema": {
              "const": "powersystem-project-tool/v1"
            },
            "version": {
              "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$",
              "type": "string"
            }
          },
          "required": [
            "schema",
            "name",
            "description",
            "version",
            "entrypoint",
            "permissions",
            "input_schema",
            "output_schema"
          ],
          "type": "object"
        },
        "rights_asserted": {
          "const": true
        },
        "source_code": {
          "maxLength": 65536,
          "minLength": 1,
          "type": "string"
        }
      },
      "required": [
        "manifest",
        "source_code",
        "license_spdx",
        "license_text",
        "rights_asserted"
      ],
      "type": "object"
    },
    "request_id": {
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
      "type": "string"
    }
  },
  "required": [
    "request_id",
    "payload"
  ],
  "type": "object"
}

Results, errors and safety

Inspect the structured result and retained IDs/artifacts. Errors, unsupported profiles, missing data and cancellation remain explicit. A successful call grants no human engineering approval. Do not retry inference automatically. See Workflows, History and Project tools.