Skip to main content
Glama

Agent Handoff Packet

agent_handoff_packet
Read-onlyIdempotent

Generate a compact handoff packet so another AI agent can continue software development work, including repo context, decisions, and next steps.

Instructions

Generate a compact handoff packet so another AI agent can continue SDLC work.

Use when wrapping up a session, before handing off to a specialised agent, or when context is nearing its limit.

Args:

  • owner, repo: Repository coordinates.

  • issueNumber (number?): Issue being worked on.

  • pullNumber (number?): PR being worked on.

  • releaseRef (string?): Release ref being worked on.

  • currentStatus (string?): Optional caller-authored status; system evidence is used when omitted.

  • goal / nonGoals / completedActions / decisions: Optional caller-authored handoff context.

  • nextSteps (string[]?): Ordered tasks for the next agent.

Returns: Compact handoff prompt, repo context snapshot, and remaining tasks.

Input Schema

NameRequiredDescriptionDefault
goalNoOptional caller-authored goal. Kept unverified.
repoNoGitHub repo. Falls back to GITHUB_REPO.
ownerNoGitHub owner. Falls back to GITHUB_OWNER.
nonGoalsNoOptional caller-authored non-goals. Kept unverified.
decisionsNoOptional caller-authored decisions. Kept unverified.
nextStepsNoOrdered list of next steps for the incoming agent.
pullNumberNoPR being worked on (if applicable).
releaseRefNoRelease ref being worked on (if applicable).
issueNumberNoIssue being worked on (if applicable).
currentStatusNoOptional caller-authored work status. Kept unverified.
completedActionsNoOptional caller-authored completed actions. Kept unverified.

Output Schema

NameRequiredDescriptionDefault
goalYes
repoYes
prRefYes
issueRefYes
nonGoalsYes
decisionsYes
nextStepsYes
releaseRefYes
policyDigestNo
currentStatusYes
defaultBranchYes
handoffPromptYes
policySourcesNo
policySummaryNo
trustBoundaryNo
evidencePacketYes
policyDegradedNo
completedActionsYes
evidenceWarningsYes
appliedPolicyRulesNo
promptInjectionWarningsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv1.11.0
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • changedOutput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. Changed17 schema fields changedv1.9.0
    • addedInput schema / properties / completedActions
      Added value: +{
      +  "description": "Optional caller-authored completed actions. Kept unverified.",
      +  "items": {
      +    "maxLength": 1000,
      +    "minLength": 1,
      +    "type": "string"
      +  },
      +  "maxItems": 50,
      +  "type": "array"
      +}
    • changedInput schema / properties / currentStatus / description
      Previous value: -"Free-text description of the current work status."New value: +"Optional caller-authored work status. Kept unverified."
    • addedInput schema / properties / decisions
      Added value: +{
      +  "description": "Optional caller-authored decisions. Kept unverified.",
      +  "items": {
      +    "properties": {
      +      "rationale": {
      +        "maxLength": 2000,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "summary": {
      +        "maxLength": 1000,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "summary"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 30,
      +  "type": "array"
      +}
    • addedInput schema / properties / goal
      Added value: +{
      +  "description": "Optional caller-authored goal. Kept unverified.",
      +  "maxLength": 2000,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / nonGoals
      Added value: +{
      +  "description": "Optional caller-authored non-goals. Kept unverified.",
      +  "items": {
      +    "maxLength": 1000,
      +    "minLength": 1,
      +    "type": "string"
      +  },
      +  "maxItems": 20,
      +  "type": "array"
      +}
    • addedInput schema / properties / releaseRef
      Added value: +{
      +  "description": "Release ref being worked on (if applicable).",
      +  "maxLength": 500,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • removedInput schema / required
      Removed value: -[
      -  "currentStatus"
      -]
    • addedOutput schema / properties / completedActions
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / decisions
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "rationale": {
      +        "type": "string"
      +      },
      +      "summary": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "summary"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / evidencePacket
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "budget": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "collectionTimeoutMs": {
      +          "exclusiveMinimum": 0,
      +          "maximum": 9007199254740991,
      +          "type": "integer"
      +        },
      +        "maxEvidenceItems": {
      +          "exclusiveMinimum": 0,
      +          "maximum": 9007199254740991,
      +          "type": "integer"
      +        },
      +        "maxFilesPerSource": {
      +          "exclusiveMinimum": 0,
      +          "maximum": 9007199254740991,
      +          "type": "integer"
      +        },
      +        "maxGithubRequests": {
      +          "exclusiveMinimum": 0,
      +          "maximum": 9007199254740991,
      +          "type": "integer"
      +        },
      +        "maxItemsPerSource": {
      +          "exclusiveMinimum": 0,
      +          "maximum": 9007199254740991,
      +          "type": "integer"
      +        },
      +        "maxRenderedMarkdownCharacters": {
      +          "exclusiveMinimum": 0,
      +          "maximum": 9007199254740991,
      +          "type": "integer"
      +        },
      +        "maxSourceTextCharacters": {
      +          "exclusiveMinimum": 0,
      +          "maximum": 9007199254740991,
      +          "type": "integer"
      +        }
      +      },
      +      "required": [
      +        "maxEvidenceItems",
      +        "maxGithubRequests",
      +        "maxSourceTextCharacters",
      +        "maxFilesPerSource",
      +        "maxItemsPerSource",
      +        "maxRenderedMarkdownCharacters",
      +        "collectionTimeoutMs"
      +      ],
      +      "type": "object"
      +    },
      +    "collectedAt": {
      +      "type": "string"
      +    },
      +    "contentDigest": {
      +      "pattern": "^[a-f0-9]{64}$",
      +      "type": "string"
      +    },
      +    "evidence": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "collectedAt": {
      +            "type": "string"
      +          },
      +          "completeness": {
      +            "enum": [
      +              "complete",
      +              "partial",
      +              "omitted"
      +            ],
      +            "type": "string"
      +          },
      +          "expiresAt": {
      +            "type": "string"
      +          },
      +          "freshness": {
      +            "enum": [
      +              "fresh",
      +              "stale",
      +              "unknown"
      +            ],
      +            "type": "string"
      +          },
      +          "id": {
      +            "type": "string"
      +          },
      +          "kind": {
      +            "type": "string"
      +          },
      +          "limitations": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "provenance": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "appId": {
      +                "exclusiveMinimum": 0,
      +                "maximum": 9007199254740991,
      +                "type": "integer"
      +              },
      +              "policyDigest": {
      +                "type": "string"
      +              },
      +              "provider": {
      +                "type": "string"
      +              },
      +              "ref": {
      +                "type": "string"
      +              },
      +              "sourceContentDigest": {
      +                "pattern": "^[a-f0-9]{64}$",
      +                "type": "string"
      +              },
      +              "subjectSha": {
      +                "type": "string"
      +              },
      +              "toolVersion": {
      +                "type": "string"
      +              },
      +              "url": {
      +                "type": "string"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "reason": {
      +            "type": "string"
      +          },
      +          "recommendedNextActions": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "source": {
      +            "enum": [
      +              "github_api",
      +              "github_check_run",
      +              "repository_file",
      +              "repository_policy",
      +              "caller_assertion",
      +              "system"
      +            ],
      +            "type": "string"
      +          },
      +          "sourceUpdatedAt": {
      +            "type": "string"
      +          },
      +          "state": {
      +            "enum": [
      +              "verified",
      +              "failed",
      +              "pending",
      +              "unverified",
      +              "not_applicable"
      +            ],
      +            "type": "string"
      +          },
      +          "subject": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "number": {
      +                "exclusiveMinimum": 0,
      +                "maximum": 9007199254740991,
      +                "type": "integer"
      +              },
      +              "ref": {
      +                "type": "string"
      +              },
      +              "repo": {
      +                "type": "string"
      +              },
      +              "sha": {
      +                "type": "string"
      +              },
      +              "type": {
      +                "enum": [
      +                  "repository",
      +                  "pull_request",
      +                  "issue",
      +                  "release"
      +                ],
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "type",
      +              "repo"
      +            ],
      +            "type": "object"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "kind",
      +          "subject",
      +          "state",
      +          "freshness",
      +          "completeness",
      +          "source",
      +          "collectedAt",
      +          "provenance",
      +          "reason",
      +          "limitations",
      +          "recommendedNextActions"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "generatorVersion": {
      +      "type": "string"
      +    },
      +    "limitations": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "omittedEvidence": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "count": {
      +            "exclusiveMinimum": 0,
      +            "maximum": 9007199254740991,
      +            "type": "integer"
      +          },
      +          "kind": {
      +            "type": "string"
      +          },
      +          "reason": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "kind",
      +          "count",
      +          "reason"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "recommendedNextActions": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "schemaVersion": {
      +      "const": "1.0",
      +      "type": "string"
      +    },
      +    "subject": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "number": {
      +          "exclusiveMinimum": 0,
      +          "maximum": 9007199254740991,
      +          "type": "integer"
      +        },
      +        "ref": {
      +          "type": "string"
      +        },
      +        "repo": {
      +          "type": "string"
      +        },
      +        "sha": {
      +          "type": "string"
      +        },
      +        "type": {
      +          "enum": [
      +            "repository",
      +            "pull_request",
      +            "issue",
      +            "release"
      +          ],
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "type",
      +        "repo"
      +      ],
      +      "type": "object"
      +    },
      +    "summary": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "idsByState": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "failed": {
      +              "items": {
      +                "type": "string"
      +              },
      +              "type": "array"
      +            },
      +            "not_applicable": {
      +              "items": {
      +                "type": "string"
      +              },
      +              "type": "array"
      +            },
      +            "pending": {
      +              "items": {
      +                "type": "string"
      +              },
      +              "type": "array"
      +            },
      +            "unverified": {
      +              "items": {
      +                "type": "string"
      +              },
      +              "type": "array"
      +            },
      +            "verified": {
      +              "items": {
      +                "type": "string"
      +              },
      +              "type": "array"
      +            }
      +          },
      +          "required": [
      +            "verified",
      +            "failed",
      +            "pending",
      +            "unverified",
      +            "not_applicable"
      +          ],
      +          "type": "object"
      +        },
      +        "omittedIds": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "partialIds": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "staleIds": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "required": [
      +        "idsByState",
      +        "staleIds",
      +        "partialIds",
      +        "omittedIds"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "schemaVersion",
      +    "generatorVersion",
      +    "subject",
      +    "evidence",
      +    "summary",
      +    "recommendedNextActions",
      +    "limitations",
      +    "budget",
      +    "omittedEvidence",
      +    "collectedAt",
      +    "contentDigest"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / goal
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / nonGoals
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / properties / prRef / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "branch": {
      -        "type": "string"
      -      },
      -      "number": {
      -        "maximum": 9007199254740991,
      -        "minimum": -9007199254740991,
      -        "type": "integer"
      -      },
      -      "state": {
      -        "type": "string"
      -      },
      -      "title": {
      -        "type": "string"
      -      },
      -      "url": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "number",
      -      "title",
      -      "state",
      -      "branch",
      -      "url"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "branch": {
      +        "type": "string"
      +      },
      +      "headSha": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "number": {
      +        "maximum": 9007199254740991,
      +        "minimum": -9007199254740991,
      +        "type": "integer"
      +      },
      +      "state": {
      +        "type": "string"
      +      },
      +      "title": {
      +        "type": "string"
      +      },
      +      "url": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "number",
      +      "title",
      +      "state",
      +      "branch",
      +      "url"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / properties / promptInjectionWarnings
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "categories": {
      +        "items": {
      +          "enum": [
      +            "instruction_override",
      +            "role_impersonation",
      +            "tool_coercion",
      +            "secret_exfiltration",
      +            "data_exfiltration",
      +            "encoded_instruction"
      +          ],
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "severity": {
      +        "enum": [
      +          "medium",
      +          "high"
      +        ],
      +        "type": "string"
      +      },
      +      "source": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "source",
      +      "severity",
      +      "categories"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / releaseRef
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / trustBoundary
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "callerAndRepositoryContent": {
      +      "const": "untrusted",
      +      "type": "string"
      +    },
      +    "instructionHandling": {
      +      "const": "never_execute",
      +      "type": "string"
      +    },
      +    "permissionHandling": {
      +      "const": "never_expand",
      +      "type": "string"
      +    },
      +    "secretHandling": {
      +      "const": "never_reveal",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "callerAndRepositoryContent",
      +    "instructionHandling",
      +    "secretHandling",
      +    "permissionHandling"
      +  ],
      +  "type": "object"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "repo",
      -  "defaultBranch",
      -  "currentStatus",
      -  "nextSteps",
      -  "handoffPrompt",
      -  "issueRef",
      -  "prRef",
      -  "evidenceWarnings"
      -]New value: +[
      +  "repo",
      +  "defaultBranch",
      +  "currentStatus",
      +  "goal",
      +  "nonGoals",
      +  "completedActions",
      +  "decisions",
      +  "nextSteps",
      +  "handoffPrompt",
      +  "issueRef",
      +  "prRef",
      +  "releaseRef",
      +  "evidenceWarnings",
      +  "promptInjectionWarnings",
      +  "evidencePacket"
      +]
  3. Changed11 schema fields changedv1.8.0
    • addedInput schema / properties / currentStatus / maxLength
      Added value: +5000
    • addedInput schema / properties / nextSteps / items / maxLength
      Added value: +1000
    • addedInput schema / properties / nextSteps / items / minLength
      Added value: +1
    • addedInput schema / properties / nextSteps / maxItems
      Added value: +50
    • addedOutput schema / properties / appliedPolicyRules
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "id": {
      +        "type": "string"
      +      },
      +      "source": {
      +        "const": "repository",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "source"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / evidenceWarnings
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / policyDegraded
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / policyDigest
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / policySources
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "blobSha": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "digest": {
      +        "type": "string"
      +      },
      +      "kind": {
      +        "enum": [
      +          "default",
      +          "repository"
      +        ],
      +        "type": "string"
      +      },
      +      "path": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "ref": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      }
      +    },
      +    "required": [
      +      "kind",
      +      "path",
      +      "ref",
      +      "blobSha",
      +      "digest"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / policySummary
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "defaultWorkType": {
      +      "enum": [
      +        "docs",
      +        "feature",
      +        "bugfix",
      +        "refactor",
      +        "security",
      +        "release",
      +        "infra"
      +      ],
      +      "type": "string"
      +    },
      +    "degraded": {
      +      "type": "boolean"
      +    },
      +    "found": {
      +      "type": "boolean"
      +    },
      +    "protectedPaths": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "releaseBlockingLabels": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "requireChangelog": {
      +      "type": "boolean"
      +    },
      +    "requireCodeOwnersForProtectedPaths": {
      +      "type": "boolean"
      +    },
      +    "requireIssueLink": {
      +      "type": "boolean"
      +    },
      +    "requireRollbackPlan": {
      +      "type": "boolean"
      +    },
      +    "requiredChecks": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "appId": {
      +            "exclusiveMinimum": 0,
      +            "maximum": 9007199254740991,
      +            "type": "integer"
      +          },
      +          "name": {
      +            "type": "string"
      +          },
      +          "source": {
      +            "const": "check_run",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "name",
      +          "source",
      +          "appId"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "requiredReviewerRuleIds": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "riskRuleIds": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "schemaVersion": {
      +      "const": 1,
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "found",
      +    "degraded",
      +    "schemaVersion",
      +    "requiredChecks",
      +    "protectedPaths",
      +    "riskRuleIds",
      +    "requiredReviewerRuleIds",
      +    "releaseBlockingLabels",
      +    "requireIssueLink",
      +    "requireCodeOwnersForProtectedPaths",
      +    "requireChangelog",
      +    "requireRollbackPlan"
      +  ],
      +  "type": "object"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "repo",
      -  "defaultBranch",
      -  "currentStatus",
      -  "nextSteps",
      -  "handoffPrompt",
      -  "issueRef",
      -  "prRef"
      -]New value: +[
      +  "repo",
      +  "defaultBranch",
      +  "currentStatus",
      +  "nextSteps",
      +  "handoffPrompt",
      +  "issueRef",
      +  "prRef",
      +  "evidenceWarnings"
      +]
  4. First observedv1.5.0

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, open world), so the bar is lower. The description still adds genuinely useful behavior context: caller-authored fields are 'Kept unverified' and system evidence is substituted when currentStatus is omitted. It does not state whether the packet is persisted or side-effect free beyond what annotations imply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well front-loaded: purpose, then usage conditions, then args, then returns. The four-part structure is easy to scan, though the Args list duplicates the schema and adds modest length for little new information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description need not detail return values, and all 11 parameters are optional with full schema coverage. What remains is the very subtle distinction from sdlc_evidence_packet, which the description does not address.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and every parameter, including fallbacks like GITHUB_REPO/GITHUB_OWNER and length constraints, is documented in the schema. The description's Args block largely restates the schema, adding only the 'system evidence when omitted' note for currentStatus. Baseline 3 applies when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Generate a compact handoff packet') and names the audience ('so another AI agent can continue SDLC work'). It is clear on its own, but it never distinguishes itself from the close sibling sdlc_evidence_packet, which an agent must choose between.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit triggering conditions: wrapping up a session, handing off to a specialised agent, or when context nears its limit. That is strong when-to-use guidance, but it names no exclusions or alternative tools for the adjacent cases (sdlc_evidence_packet, create_pr_summary).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.