-The commandname may be the command's primary name (e.g. `my:command`), it's method name (e.g. myCommand) or any of its aliases.
-
-If an annotation is given instead, then this hook function will run for all commands with the specified annotation.
-
-There are ten types of hooks supported:
-
-- Command Event (Symfony)
-- Option
-- Initialize (Symfony)
-- Interact (Symfony)
-- Validate
-- Command
-- Process
-- Alter
-- Status
-- Extract
-- On-event
-- Replace Command
-
-Most of these also have "pre" and "post" varieties, to give more flexibility vis-a-vis hook ordering (and for consistency). Note that many validate, process and alter hooks may run, but the first status or extract hook that successfully returns a result will halt processing of further hooks of the same type.
+The hook **type** determines when during the command lifecycle this hook will be called. The available hook types are described in detail below.
+
+The hook **target** specifies which command or commands the hook will be attached to. There are several different ways to specify the hook target.
+
+- The command's primary name (e.g. `my:command`) or the command's method name (e.g. myCommand) will attach the hook to only that command.
+- An annotation (e.g. `@foo`) will attach the hook to any command that is annotated with the given label.
+- If the target is omitted, then the hook will be attached to every command defined in the same class as the hook implementation.
+
+There are ten types of hooks in the command processing request flow:
+
+- [Command Event](#command-event-hook) (Symfony)
+ - @pre-command-event
+ - @command-event
+ - @post-command-event
+- [Option](#option-event-hook)
+ - @pre-option
+ - @option
+ - @post-option
+- [Initialize](#initialize-hook) (Symfony)
+ - @pre-init
+ - @init
+ - @post-init
+- [Interact](#interact-hook) (Symfony)
+ - @pre-interact
+ - @interact
+ - @post-interact
+- [Validate](#validate-hook)
+ - @pre-validate
+ - @validate
+ - @post-validate
+- [Command](#command-hook)
+ - @pre-command
+ - @command
+ - @command-init
+- [Process](#process-hook)
+ - @pre-process
+ - @process
+ - @post-process
+- [Alter](#alter-hook)
+ - @pre-alter
+ - @alter
+ - @post-alter
+- [Status](#status-hook)
+ - @status
+- [Extract](#extract-hook)
+ - @extract
+
+In addition to these, there are two more hooks available:
+
+- [On-event](#on-event-hook)
+ - @on-event
+- [Replace Command](#replace-command-hook)
+ - @replace-command
+
+The "pre" and "post" varieties of these hooks, where avalable, give more flexibility vis-a-vis hook ordering (and for consistency). Within one type of hook, the running order is undefined and not guaranteed. Note that many validate, process and alter hooks may run, but the first status or extract hook that successfully returns a result will halt processing of further hooks of the same type.