View on
MetaCPAN is shutting down
For details read Perl NOC. After June 25th this page will redirect to
Andy Lester > hwd-0.21_01 > hwd


Annotate this POD (1)


New  6
Open  2
View/Report Bugs


hwd -- The How We Doin'? project tracking tool


hwd [options] schedule-file(s)


        --nextid    Display the next highest task ID
        --todo      Displays tasks left to do, started or not.
        --started   Displays tasks that have been started
                    Displays tasks started by person
        --tasks     Displays tasks sorted by person
                    Displays tasks for a given user
        --burndown  Display a burn-down table

        --wrap=n    Wrap output at n columns, or 0 for no wrapping.
                    Default is 72, or terminal width if available.
        --csv       Output in CSV format
        --nonotes   Omit the notes from the output
        --strict    Die on problems in the input file (default)
        --nostrict  Print output even if there are non-fatal errors

    -h, --help      Display this help
    -H, --man       Longer manpage for prove
    -V, --version   Display version info



Limit the dump of tasks to only those that are left to do, whether or not they've been started.


Shows what tasks have been started by the person specified, or by everyone if no one one is specified.

    Ape is working on...
      104 - Add FK constraints between FOOHEAD and BARDETAIL (2/2)

    Chimp is working on...
      107 - Refactor (1/1)


Shows the list of tasks and their status sorted by user. If a person is specified, only the tasks for that person will be shown.


Shows the next ID available.


Print a "burn down" graph:

    YYYY/MM/DD      Total   Todo
    2005/07/15      100     98
    2005/07/17      100     77
    2005/07/18      100     75
    2005/07/19      100     70

That is, how fast is the amount of work left "burning down" to zero?

--strict, --nostrict

By default, --strict is on and hwd will not print output if there are errors in the input. You can use the --nostrict for when you're getting your first schedule pulled together and don't mind the errors and the inaccuracies they cause, in the name of seeing some output.

-V, --version

Display version info.


The HWD file format is intentionally very simple. It's designed to be usable in plain ol' text editors, and merge easily in a version control system like Subversion.

The order of lines in the file are significant, except for work lines that correspond to a numbered task.


The core of an .hwd file is the task line. Each task line corresponds to one task. Here are some sample task lines:

    -Report printing
    --Data entry screen (4h, #101)
    --Data entry validation (6h, #102)
        Needs to handle Canadian postcodes, too.
    --Data marshalling
    ---Design temp tables (2h, #67, added 2006-01-05)
    ---SQL queries (4h, #103)
    --Report generation
    ---Install Report-o-gram (2h, #105, deleted 2006-02-08)
        Not needed for this project.  We'll work with what we have.
    ---Write report code (2h, #106)

The number of dashes before each line indicate the depth in the work outline. The text up to the parentheses is the name/description of the task. Lines beginning with whitespace are notes (see below).

The parenthetical block is control information for the task, and may include any of the following, separated by commas, in any order:


Any line that starts with whitespace is seen as a note for the task immediately preceding it.

Any line that begins with a # is a comment in the file, and is ignored during processing.


If you want to use hwd as just an outliner/scheduler, that's fine. However, you can then put your work entries into the .hwd file and have hwd tell you how you're doing on the project.

Work is recorded with work lines that follow this format:

    Who     Date    Task#   Time X?

All fields are separated by whitespace, and the Who column cannot contain spaces. The optional X tells whether the task was completed or not.

Here are some examples.

    --Do some stuff (#105)
    --Do some other stuff (#253)
    Arlo    3/09    105     3h
    Arlo    3/09    253     15m X

Arlo worked on March 9th on task 105 for 3 hours, and then on task 253 for 15 minutes, and completed it. At this point, task 105 is open and 253 is closed.

Later, we find these work entries.

    Arlo    3/10    105     2 X
    Arlo    3/10    253     5

Arlo finished up 105, but found bugs in task 253 and went back to work on it. Now, task 105 is closed, and 253 has been re-opened because more work was done on it without having been completed. Note that without specifying "h" for hours or "m" for minutes, hwd assumes hours.

It's not necessary to have numbered tasks to use the work tracking. If you don't want to hassle with numbering, you can use the magic task number of ^ (caret) to apply the work to the most recent task in the file. For example, our previous examples could have been written as

    --Do some stuff (#105)
    Arlo    3/09    ^       3
    Arlo    3/10    ^       2 X
    --Do some other stuff (#253)
    Arlo    3/09    ^       .25h X
    Arlo    3/10    ^       5h

Note that for unnumbered tasks, the relative order of the lines is important so that the work is applied to the appropriate tasks. For numbered tasks, tasks and work can appear in any order. Also, you can combine numbered and unnumbered, so that you can have:

    --Do some stuff (#105)
    --Do some other stuff (#253)
    Arlo    3/09    105     2 X
    Arlo    3/10    ^       5
    Arlo    3/10    105     15m X
    Arlo    3/09    ^       3



Please use the CPAN bug ticketing system at You can also mail bugs, fixes and enhancements to <bug-app-hwd at>.


Andy Lester <andy at>


Copyright 2006 by Andy Lester <andy at>.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


syntax highlighting: