Marking a parameter for output means that callers will expect its value to be updated with a result from the execution of the procedure. Failing to
update the parameter before the procedure returns is surely an error.
Noncompliant code example
CREATE PROCEDURE greet
  @Name varchar(20),
  @Greeting varchar(25) OUTPUT  -- Noncompliant
AS
  DECLARE @Message VARCHAR(45)
  SET @Message = N'Hello ' + RTRIM(@Name);
  PRINT @Message
GO
Compliant solution
CREATE PROCEDURE greet
  @Name varchar(20),
  @Greeting varchar(25) OUTPUT
AS
  SELECT @Greeting = N'Hello ' + RTRIM(@Name);
GO