A sample NCI ASL hook script is provided below for reference:

/* sampleNciHook.asl
 */
default debug = TRUE;
default detailedDebug = TRUE;
default NotificationName = "";
default DISCARD_IN_NOTIF = "";
DISCARD_IN_NOTIF = "FALSE";
icsNotificationFactory = object();
ics_domain_name = getServerName();
user = "HOOK";
aslName = this->ReadsRulesFrom->fileName;
myThread = thread();
auditText = " ".aslName." Thread=".myThread." ";
START {
    local errorOrSkip = FALSE;
    .. eol
    errorOrSkip : VERIFY_INPUT
    (!errorOrSkip)
    errorOrSkip : PRINT_SOMETHING
    (!errorOrSkip)
    
}
//Grab the ICS_Notification object using the name passed in.
VERIFY_INPUT {
    local error = FALSE;
    do {
        nObj = self->object(NotificationName);
        if (NotificationName == "" || nObj->isNull()) {
            print(time().auditText." Internal Error: ".
                  " could not find the notification".
                  " object('".NotificationName."')!");
            error = TRUE;
        }
        return error;
    }
}
/* Sample activity.
*/
PRINT_SOMETHING {
    local skip = FALSE;
    do {
  print(time().auditText.nObj->InstanceName." FROM NOTIF NCI HOOK");
 }
}