Ga naar inhoud

Commands reference

Billbird recognizes slash commands in GitHub issue comments. Commands must appear at the start of a line.

There are two command families: time-logging (/log, /correct, /delete) records actual time, and planning (/plan, /unplan) records forecast time. Both follow the same non-destructive correction-chain pattern. Every entry also snapshots the issue's GitHub labels at the moment of the comment, so reports can slice on strippenkaart, WBSO, work-type, and other label-driven dimensions — see docs/labels.md.

A complementary, optional path is the dev-time hook — a local pre-commit hook that suggests a Time: footer on each commit. The two sources coexist; a future Gitsweeper tool will reconcile them.

/log

Log time on the current issue.

/log <duration> [description]

Examples:

/log 2h
/log 45m
/log 1h30m
/log 2h Fixed the authentication bug

Duration formats:

Format Meaning
2h 2 hours (120 minutes)
45m 45 minutes
1h30m 1 hour 30 minutes (90 minutes)
12h 12 hours

Behavior: - Creates a new time entry with status active - Links the entry to the commenting user, the issue, and the repository - If the issue has a label matching a client mapping, the entry is automatically attributed to that client - Bot replies with a confirmation comment

Confirmation:

Logged 2h for @developer (entry #42)

Or with a description:

Logged 2h for @developer (entry #42) --- Fixed the authentication bug

/correct

Replace your most recent entry on the current issue.

/correct <duration> [description]

Examples:

/correct 3h
/correct 1h30m Revised after code review

Behavior: - Finds your most recent active entry on this issue - Creates a new entry with the corrected duration - Marks the previous entry as superseded (not deleted) - The previous entry's superseded_by field points to the new entry - Client attribution carries over from the original entry

Confirmation:

Corrected @developer's entry from 2h to 3h (entry #43 supersedes #42)

Errors: - If you have no active entry on this issue, the bot replies with an error

/delete

Remove your most recent entry on the current issue.

/delete

Behavior: - Finds your most recent active entry on this issue - Marks it as deleted (soft delete --- the row stays in the database) - No physical deletion ever occurs

Confirmation:

Deleted @developer's entry of 2h (entry #42)

Errors: - If you have no active entry on this issue, the bot replies with an error

/plan

Record a forecast (estimate) for the current issue.

/plan <duration> [description]

Examples:

/plan 8h
/plan 4h Initial scope estimate
/plan 1h30m

Behavior: - Creates a new plan entry with status active - An issue has at most one active plan. Running /plan again on the same issue marks the previous plan as superseded and links the chain via superseded_by - Plans are independent of clients — they live in their own table (plan_entries), not in time_entries - The plan is compared against the sum of active log entries through the plan-vs-actual view in the admin panel and API

Confirmation (new plan):

Planned 8h on this issue by @developer (plan #12)

Confirmation (re-plan):

Updated @developer's plan from 8h to 12h (plan #13 supersedes #12)

/unplan

Remove the active plan on the current issue.

/unplan

Behavior: - Finds the active plan (regardless of who created it) - Marks it as deleted and records the /unplan comment as the closing reference - No physical deletion ever occurs

Confirmation:

Removed @developer's plan of 8h (plan #12)

Errors: - If the issue has no active plan, the bot replies with an error

How commands are parsed

  • Commands must start at the beginning of a line
  • Only the first command in a comment is processed
  • Text before or after the command line is ignored
  • The bot only responds to newly created comments (not edits)
Here is some context about what I did.

/log 2h Implemented the feature

This text is ignored by Billbird.

Error messages

When a command fails, Billbird posts a comment explaining what went wrong:

Billbird error: missing duration: use /log \<duration> (e.g. /log 2h, /log 30m, /log 1h30m)

Billbird error: No active time entry found on this issue to correct.