diff --git a/hooks-its/src/main/resources/Documentation/config.md b/hooks-its/src/main/resources/Documentation/config.md
index f817ccd..a2c4862 100644
--- a/hooks-its/src/main/resources/Documentation/config.md
+++ b/hooks-its/src/main/resources/Documentation/config.md
@@ -3,17 +3,455 @@
 
 link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/hooks-its['hooks-its']
 is by itself not a real plugin, but the common parent project for issue tracking
-system (ITS) plugins for gerrit, such as
+system (ITS) plugins for Gerrit, such as
 link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/hooks-bugzilla['hooks-bugzilla'],
 or
 link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/hooks-jira['hooks-jira'].
 
 
 
+[[config]]
 Common configuration
 --------------------
 
-The base functionality for 'hooks-its' based plugins can be configured via the
+The base functionality for 'hooks-its' based plugins is configured via
+git config files in the site's `etc/its` directory footnote:[The
+<<config-legacy,legacy configuration>> directly in `etc/gerrit.config`
+still works, but upgrading to this xref:config[new, more flexible
+approach] is strongly recommended.].
+
+Setting up which event in Gerrit (E.g.: “Change Merged”, or “User
+‘John Doe’ voted ‘+2’ for ‘Code-Review’ on a change”) should causes
+what action on the ITS (e.g.: “Set issue's status to ‘Resolved’”) is
+configured through a xref:config-rule-base[rule base] in
+`etc/its/action.config`.
+
+
+
+[[config-rule-base]]
+Rule base for Actions
+~~~~~~~~~~~~~~~~~~~~~
+
+In this part we describe, how to specify which events in Gerrit (E.g.:
+“Change Merged”, or “User ‘John Doe’ voted ‘+2’ for ‘Code-Review’ on a
+change”) should causes what action (e.g.: “Set issue's status to
+‘Resolved’”) on the ITS.
+
+Actions on the ITS and conditions for the action to take place are
+configured through the rule base in `etc/its/actions.config` in the
+site directory. The rule base is a git config file, and may contain an
+arbirary number of rules. Each rule can have an arbitrary number of
+conditions and actions. A rule fires all associated actions, once all
+of its conditions are met.
+
+A simple `etc/its/actions.config` may look like
+----
+[rule "rule1"]
+        event-type = change-merged
+        action = add-standard-comment
+[rule "rule2"]
+        event-type = comment-added
+        approval-Code-Review = -2,-1
+        action = add-comment Oh my Goodness! Someone gave a negative code review in Gerrit on an associated change.
+----
+
+This snippet defines two rules ('rule1', and 'rule2'). On merging a
+change that's associated to some issues, 'rule1' adds a predefined
+standard comment for “Change Merge” to each such issue. If someone
+adds a comment to a change that is associated to some issues and votes
+“-2”, or “-1” for “Code-Review”, 'rule2' adds the comment “Oh my
+Goodness! Someone gave a negative code review in Gerrit on an
+associated change.” to each such issue.
+
+The order of rules in `etc/its/action.config` need not be
+respected. So in the above example, do not rely on 'rule1' being
+evaluated before 'rule2'.
+
+Rules
+~~~~~
+
+Each rule consists of three items: A name, a set of conditions, and a
+set of actions.
+
+A rule's name ('rule1', and 'rule2' in the above example) are
+currently not used and only provided for convenience.
+
+Each rule line setting the option 'action' is interpreted as
+action. Any other lines of a rule are considered a condition.
+
+Each of a rule's actions is taken for events that meet all of a
+rule's conditions. If a rule contains more than one action
+specifications, the order in which they are given need not be
+respected.
+
+There is no upper limit on the number of elements in a rules set of
+conditions, and set of actions. Each of those sets may be empty.
+
+Conditions
+~~~~~~~~~~
+
+The conditions are lines of the form
+----
+name = value1, value2, ..., valueN
+----
+and match if the event comes with a property 'name' having 'value1',
+or 'value2', or ..., or 'valueN'.
+
+
+[[event-properties]]
+Event Properties
+~~~~~~~~~~~~~~~~
+
+The properties exposed by events depend on the kind of event.
+
+For all events, the event's class name is provided in the 'event'
+property. Most native Gerrit events provide the 'event-type'
+property. So 'event-type' (or 'event' for other events fired by
+plugins) allows you to write filters that fire only for a certain type
+of event.
+
+The common properties for each event are
+
+'event'::
+  The event's class name.
+'issue'::
+  Issue to which this event is associated. Each event is associated to
+  exactly one issue. If for example an event is fired for a commit
+  message, that would contain more than one issue id (say issue “23”,
+  and issue “47"), then the event is duplicated and sent once for each
+  associated issue (i.e.: once with 'issue' being +23+, and once with
+  'issue' being +47+).
+'association'::
+  How the issue of property 'issue' got associated to this event. An
+  event typically has several 'association' properties. Possible
+  values are:
+  'somewhere'::: issue id occurs somewhere in the commit message of the
+    change/the most recent patch set.
+  'subject'::: issue id occurs in the first line of the commit message
+    of the change/the most recent patch set.
+  'body'::: issue id occurs after the subject but before the footer
+    of the commit message of the change/the most recent patch set.
+  'footer'::: issue id occurs in the last paragraph after the subject
+    of the commit message of the change/the most recent patch set.
+  'footer-<Key>'::: issue id occurs in the footer of the commit
+    message of the change/the most recent patch set, and is in a line
+    with a key (part before the colon).
+    +
+    So for example, if the footer would contain a line
++
+----
+Fixes-Issue: issue 4711
+----
++
+then a property 'association' with value +footer-Fixes-Issue+ would
+get added to the event for issue “4711”.
+
+  'added@<Association-Value>':::
+    (only for events that allow to determine the patch set number. So
+    for example, this 'association' property is not set for
+    RevUpdatedEvents)
+    +
+    issue id occurs at '<Association-Value>' in the most recent patch
+    set of the change, and either the event is for patch set 1 or the
+    issue id does not occur at '<Association-Value>' in the previous
+    patch set.
+    +
+    So for example if issue “4711” occurs in the subject of patch set
+    3 (the most recent patch set) of a change, but not in patch set 2.
+    When adding a comment to this change, the event for issue “4711”
+    would get a property 'association' with value +added@subject+.
+
+The further properties are listed in the event's
+corresponding subsection below:
+
+* <<event-properties-ChangeAbandonedEvent,ChangeAbandonedEvent>>
+* <<event-properties-ChangeMergedEvent,ChangeMergedEvent>>
+* <<event-properties-ChangeRestoredEvent,ChangeRestoredEvent>>
+* <<event-properties-CommentAddedEvent,CommentAddedEvent>>
+* <<event-properties-PatchSetCreatedEvent,PatchSetCreatedEvent>>
+* <<event-properties-RefUpdatedEvent,RefUpdatedEvent>>
+* <<event-properties-change,Common properties for events on a change>>
+* <<event-properties-patch-set,Common properties for events on a patch set>>
+
+[[event-properties-ChangeAbandonedEvent]]
+ChangeAbandonedEvent
+^^^^^^^^^^^^^^^^^^^^
+
+'abandoner-email'::
+  email address of the user abandoning the change.
+'abandoner-name'::
+  name of the user abandoning the change.
+'abandoner-username'::
+  username of the user abandoning the change.
+'event'::
+  +com.google.gerrit.server.events.ChangeAbandonedEvent+
+'event-type'::
+  +change-abandoned+
+'reason'::
+  reason why the change has been abandoned.
+
+In addition to the above properties, the event also provides
+properties for the abandoned <<event-properties-change,change>>, and
+it's most recent <<event-properties-patch-set,patch set>>.
+
+[[event-properties-ChangeMergedEvent]]
+ChangeMergedEvent
+^^^^^^^^^^^^^^^^^^^
+
+'event'::
+  +com.google.gerrit.server.events.ChangeMergedEvent+
+'event-type'::
+  +change-merged+
+'submitter-email'::
+  email address of the user causing the merge of the change.
+'submitter-name'::
+  name of the user causing the merge of the change.
+'submitter-username'::
+  username of the user causing the merge of the change.
+
+In addition to the above properties, the event also provides
+properties for the merged <<event-properties-change,change>>, and
+it's most recent <<event-properties-patch-set,patch set>>.
+
+[[event-properties-ChangeRestoredEvent]]
+ChangeRestoredEvent
+^^^^^^^^^^^^^^^^^^^
+
+'event'::
+  +com.google.gerrit.server.events.ChangeRestoredEvent+
+'event-type'::
+  +change-restored+
+'reason'::
+  reason why the change has been restored.
+'restorer-email'::
+  email address of the user restoring the change.
+'restorer-name'::
+  name of the user restoring the change.
+'restorer-username'::
+  username of the user restoring the change.
+
+In addition to the above properties, the event also provides
+properties for the restored <<event-properties-change,change>>, and
+it's most recent <<event-properties-patch-set,patch set>>.
+
+[[event-properties-CommentAddedEvent]]
+CommentAddedEvent
+^^^^^^^^^^^^^^^^^
+
+NOTE: For consistency with the other events, the 'author-...'
+properties of the CommentAddedEvent do not refer to the author of the
+comment, but refer to the author of the change's latest patch set. The
+author of the comment is accessible via the 'commenter-...'
+properties.
+
+'commenter-email'::
+  email address of the comment's author.
+'commenter-name'::
+  name of the comment's author.
+'commenter-username'::
+  username of the comment's author.
+'comment'::
+  added comment itself.
+'event'::
+  +com.google.gerrit.server.events.CommentAddedEvent+
+'event-type'::
+  +comment-added+
+
+For each new or changed approval that has been made for this change, a
+property of key 'approval-<LabelName>' and the approval's value as
+value is added. So for example voting “-2” for the approval
+“Code-Review” would add the following property:
+
+'approval-Code-Review'::
+  +-2+
+
+In addition to the above properties, the event also provides
+properties for the <<event-properties-change,change>> the comment was
+added for, and it's most recent <<event-properties-patch-set,patch
+set>>.
+
+[[event-properties-PatchSetCreatedEvent]]
+PatchSetCreatedEvent
+^^^^^^^^^^^^^^^^^^^
+
+'event'::
+  +com.google.gerrit.server.events.PatchSetCreatedEvent+
+'event-type'::
+  +patchset-created+
+
+In addition to the above properties, the event also provides
+properties for the uploaded <<event-properties-patch-set,patch set>>,
+and the <<event-properties-change,change>> it belongs to.
+
+[[event-properties-RefUpdatedEvent]]
+RefUpdatedEvent
+^^^^^^^^^^^^^^^
+
+'event'::
+  +com.google.gerrit.server.events.RefUpdatedEvent+
+'event-type'::
+  +ref-updated+
+'project'::
+  full name of the project from which a ref was updated.
+'ref'::
+  git ref that has been updated (Typcially the branch, as for example
+  +master+).
+'revision'::
+  git commit hash the rev is pointing to now.
+'revision-old'::
+  git commit hash the rev was pointing to before.
+'submitter-email'::
+  email address of the user that updated the ref.
+'submitter-name'::
+  name of the user that updated the ref.
+'submitter-username'::
+  username of the user that updated the ref.
+
+[[event-properties-change]]
+Common properties for events on a change
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+'branch'::
+  name of the branch the change belongs to.
+'change-id'::
+  Change-Id for the change („I-followed by 40 hex digits” string).
+'change-number'::
+  number for the change (plain integer).
+'change-url'::
+  url of the change.
+'owner-email'::
+  email address of the change's owner.
+'owner-name'::
+  name of the change's owner.
+'owner-username'::
+  username of the change's owner.
+'project'::
+  full name of the project the change belongs to.
+'subject'::
+  first line of the change's most recent patch set's commit message.
+'topic'::
+  name of the topic the change belongs to.
+
+[[event-properties-patch-set]]
+Common properties for events on a patch set
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+'author-email'::
+  email address of this patch set's author.
+'author-name'::
+  name of this patch set's author.
+'author-username'::
+  username of this patch set's author.
+'created-on'::
+  Timestamp of creation of the patch set (Seconds since 1st January 1970).
+'deletions'::
+  number of lines deleted by the patch set.
+'insertions'::
+  number of lines inserted by the patch set.
+'parents'::
+  A list of git commit hashes that are parents to the patch set.
+'patch-set-number'::
+  patch set's number within the change.
+'ref'::
+  git ref for the patch set (For the 5-th patch set of change 4711, this
+  will be +refs/changes/11/4711/5+).
+'revision'::
+  git commit hash of the patch set
+'uploader-email'::
+  email address of the user that uploaded this patch set.
+'uploader-name'::
+  name of the user that uploaded this patch set.
+'uploader-username'::
+  username of the user that uploaded this patch set.
+
+Actions
+~~~~~~~
+
+Lines of the form
+----
+action = name param1 param2 ... paramN
+----
+represent the action 'name' being called with parameters 'param1',
+'param2', ... 'paramN'.
+
+'hooks-its' provides the actions:
+
+<<action-add-comment,add-comment>>::
+  adds the parameters as issue comment
+<<action-add-standard-comment,add-standard-comment>>::
+  adds a predefined standard comment for certain events
+<<action-add-velocity-comment,add-velocity-comment>>::
+  adds a rendered Velocity template as issue comment.
+
+Further actions may be provided by 'hooks-its' based plugins.
+
+[[action-add-comment]]
+Action: add-comment
+^^^^^^^^^^^^^^^^^^^
+
+The 'add-comment' action adds the given parameters as comment to any associated rule.
+
+So for example
+----
+action = add-comment This is a sample command
+----
+would add a comment “This is a sample command” to associated issues.
+
+If no parameters are given, no comment gets added.
+
+[[action-add-standard-comment]]
+Action: add-standard-comment
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The 'add-standard-comment' action adds predefined comments to
+associated issues for change abandoned, merged, restored, and patch
+set created events. For other events, no comment is added to the
+associated issues.
+
+The added comments contain the person responsible for the event
+(abandoner, merger, ...), the change's subject, a reason (if one has
+been given), and a link to the change.
+
+[[action-add-velocity-comment]]
+Action: add-velocity-comment
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The 'add-velocity-comment' action renders a Velocity template for the
+event and adds the output as comment to any associated issue.
+
+So for example
+----
+action = add-velocity-comment TemplateName
+----
+would render the template `etc/its/templates/TemplateName.vm` add the
+output as comment to associated issues.
+
+If 'TemplateName' is “inline”, the Velocity template to render is not
+loaded from a file, but the template is built by joining the remaining
+parameters. So for example
+----
+action = add-velocity-comment inline Sample template using $subject property.
+----
+would render “Sample template using $subject property.” as Velocity
+template.
+
+If 'TemplateName' is not “inline”, further parameters get ignored.
+
+Any <<event-properties,property>> of the event may be used from
+templates. So for example +$subject+ in the above example refers to
+the event's subject property, and +$change-number+ would refer to the
+change's number.
+
+
+[[config-legacy]]
+Legacy configuration
+--------------------
+
+In this section we present the legacy configuration that uses
+`etc/gerrit.config` directly. Please upgrade to the xref:config[new,
+more flexible approach].
+
+the
 plugin's section (e.g.: `bugzilla` for 'hooks-bugzilla') within
 `etc/gerrit.config`. In the following description, we use `itsName` as
 placeholder for the plugin's name.  Be sure to replace it with the plugin's real
