Skip to main content
Glama
Hive-Academy

π“‚€π“’π“‹Ήπ”Έβ„•π•Œπ”Ήπ•€π•Šπ“‹Ήπ“’π“‚€ - Intelligent Guidance for

by Hive-Academy

validate_transition

Checks role transition compliance by validating requirements and providing pass/fail status with actionable feedback for role and task contexts.

Instructions

Validates role transition requirements and provides pass/fail status with actionable feedback.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
roleIdYesRole ID for validation context
taskIdYesTask ID for validation context
transitionIdYesTransition ID to validate

Implementation Reference

  • MCP tool handler function that executes the validate_transition logic, builds context, calls service, and formats response.
    async validateTransition(input: ValidateTransitionInput) {
      try {
        const context = {
          taskId: input.taskId.toString(),
          roleId: input.roleId,
        };
    
        const validation = await this.roleTransitionService.validateTransition(
          input.transitionId,
          context,
        );
    
        // βœ… MINIMAL RESPONSE: Only essential validation data
        return this.buildResponse({
          transitionId: input.transitionId,
          valid: validation.valid,
          status: validation.valid ? 'passed' : 'failed',
          issues: validation.errors || [],
          warnings: validation.warnings || [],
        });
      } catch (error) {
        return this.buildErrorResponse(
          'Failed to validate transition',
          getErrorMessage(error),
          'VALIDATION_ERROR',
        );
      }
  • Zod input schema for the validate_transition tool defining required parameters.
    const ValidateTransitionInputSchema = z.object({
      transitionId: z.string().describe('Transition ID to validate'),
      taskId: z.number().describe('Task ID for validation context'),
      roleId: z.string().describe('Role ID for validation context'),
    });
  • Registration of the validate_transition tool via @Tool decorator specifying name, description, and schema.
    @Tool({
      name: 'validate_transition',
      description: `Validates role transition requirements and provides pass/fail status with actionable feedback.`,
      parameters:
        ValidateTransitionInputSchema as ZodSchema<ValidateTransitionInput>,
    })
  • Core helper function in RoleTransitionService that performs the actual transition validation by checking conditions against database and context.
    async validateTransition(
      transitionId: string,
      context: { roleId: string; taskId: string; projectPath?: string },
    ): Promise<TransitionValidationResult> {
      try {
        const transition =
          await this.workflowRoleRepository.findTransitionById(transitionId);
    
        if (!transition) {
          return { valid: false, errors: ['Transition not found'] };
        }
    
        const errors: string[] = [];
        const warnings: string[] = [];
    
        // Validate transition conditions using structured data
        if (
          transition.conditions &&
          (transition.conditions as { name: string; value: boolean }[]).length > 0
        ) {
          const conditionResult =
            await this.validateStructuredTransitionConditions(
              transition.conditions as { name: string; value: boolean }[],
              context,
            );
          if (!conditionResult.valid) {
            errors.push(...conditionResult.errors);
          }
          if (conditionResult.warnings) {
            warnings.push(...conditionResult.warnings);
          }
        }
    
        return {
          valid: errors.length === 0,
          errors,
          warnings: warnings.length > 0 ? warnings : undefined,
        };
      } catch (error) {
        return {
          valid: false,
          errors: [`Validation error: ${error.message}`],
        };
      }
    }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Hive-Academy/Anubis-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server