Phlogiston/Configuring Phabricator to be reportable

What is the scope of the team's work?
How does your team identify its work? Phlogiston will need a list of Phabricator projects that include all of the tasks that your team works on, and all of the tasks that you consider to be part of your backlog, and no other tasks. Especially, no other tasks that other teams work on.

How do you identify categories of work?
Most teams group their work in Phabricator in terms of sequence of work, such as tasks to be designed, tasks to be tested, tasks ready to be released. For purposes of reporting and for answering the kinds of questions that Phlogiston reports answer, however, it is generally much more useful to group work in terms of purpose: goals, milestones, fixed-scope projects, ongoing projects, etc. Phlogiston supports several different approaches in Phabricator to grouping work.

Group by Project
This is the simplest: all tasks with a particular project tag can be grouped into one category in Phlogiston. No further configuration is required in Phabricator.

One example configuration is: In this configuration, the only detail relevant to Phlogiston reporting is the last bullet;  is a Phabricator project, and all tasks that belong to that project could be grouped into, for example, a   category in Phlogiston reports. (Category names in Phlogiston reports can be customized and do not have to exactly match the Phabricator names.)
 * All work that the team does is tagged with a project tag, such as .  This could also be a fixed-scope tag, such as.
 * The columns of the workboard for the  project mark the state of the work, such as ,  ,.
 * Different categories of work, such as  and , each have their own Phabricator project tag.  These tags are visible within the task cards on the   workboard.

Group by Project Column
All tasks in a particular column in a particular project can be grouped.

Group by Parent Task
All tasks that are "children" of a parent task, meaning they block the parent task, can be grouped. This works for all levels of a blocking relationship: tasks that block tasks that block a particular task can be grouped under that task.

Some teams already configure their tasks this way, making this a natural fit for Phlogiston reporting. However, because there is no easy way in Phabricator to see if a task has  parent task, it is very difficult to maintain this data perfectly in Phabricator. Additional overhead, such as regularly running a Phlogiston report to see if there are any uncategorized tasks, is required.

For this to work in Phlogiston:
 * The parent task must be tagged with the  project tag.  This tag is hard-coded into Phlogiston to denote tasks whose descendents constitute a category.
 * All of the tasks in the family tree must be included in projects included in the Phlogiston scope.
 * For example, if the parent task is in the Phabricator project  and has a sub-task in the project , and the sub-task has a sub-sub-task in the project  , and the project   is not included in the list of projects to be reported on but   is, then the sub-sub-task would be included in the report but would not be recognized as a sub-sub-task of the parent task, because the intermediate task is not present in the report data.

Group by Intersection of two Projects
EXPERIMENTAL. Phlogiston can group all tasks that belong to two specific projects into a single category.

Example configuration
 * All work that the team does is tagged with.
 * The columns of the workboard for the  project mark the state of the work, such as ,  ,.
 * Different categories of work, such as  and , each have their own Phabricator project tag.  These tags are visible within the task cards on the   workboard.
 * also includes many other tasks that other teams are working on, and which should not be included in Phlogiston reports. These tasks are not on the   board.
 * Phlogiston counts all tasks that have both the  and the   project tags as the reporting category.

Using heterogeneous categorization rules
A Phabricator configuration can use more than one of these categorization rules simultaneously. Phlogiston applies the categorization rules in a fixed sequence, so that all tasks that are not categorized by the first rule are available to the second and following rules.

Example:
 * All work that the team does is tagged with
 * The columns of the Branding Team board correspond to different long-term initiatives, such as  and   and
 * Within each column, specific milestones are denoted with tracking tasks such as  and   and  .  These tasks are tagged as   and all of the tasks related to them are marked as blocking them.
 * With this Phabricator configuration, Phlogiston could categorize tasks from most to least specific, such as,  ,  ,  ,  ,  ,.