View all documentations

Commands Documentation

This document describes all available public commands that can be executed via GitHub issue or pull request comments using the @holdex bot.

Command Format

All commands follow the pattern:

@holdex <object> <action> [arguments...]

Arguments can be provided as:

  • Flags: --key=value or --key="value with spaces"
  • Positional arguments: Some commands accept positional arguments (values without flags)

Available Commands

1. Issue Create Spec

Creates a Spec document for current issue.

Location: Issue comments only (not in pull requests)

Command:

@holdex issue create-spec

Example:

@holdex issue create-spec

2. Issue Attach Spec

Attaches a Spec document to current Goal.

Location: Goal issue comments only

Command:

@holdex issue attach-spec <doc> | --doc=<doc>

Args Schema

Arguments:

Property Type
doc (*) string (min length: 1)

(*) Required.

Example:

@holdex issue attach-spec https://docs.google.com/document/d/1234567890

3. Issue Set Eta

Updates the ETA of the current Goal.

Location: Goal issue comments only

Command:

@holdex issue set-eta <eta> | --eta=<eta>

Args Schema

Arguments:

Property Description Type
eta (*) Estimated completion date in DD-MMM-YYYY format (e.g., 01-Jan-2026) string (min length: 1)

(*) Required.

Example:

@holdex issue set-eta 01-Jan-2026

4. Pr Submit Time

Submits time spent on a pull request.

Location: Pull request comments only

Command:

@holdex pr submit-time <time> | --time=<time>

Args Schema

Arguments:

Property Description Type
time (*) Time spent on the PR in format like 15m, 1h, 2h30m, or 1.5h string (min length: 1)

(*) Required.

Example:

@holdex pr submit-time 2h30m

Special Commands

These commands use different event handling patterns and are processed separately from the standard command pipeline. It may use a different command pattern than the standard commands.

Important: Special commands must be placed at the start of the comment for them to be recognized.

1. Bug Report

Report the commit and author that introduced a bug. Use this when fixing a bug to attribute it to the original source.

Command Pattern:

@holdex bug commit <commit-url> && bug author @<username>

Example:

@holdex bug commit https://github.com/holdex/my-repo/commit/1234567890 && bug author @johndoe

2. Fix Pr Dispute

Dispute a previous bug report after the PR has been merged. Use this to correct an incorrect bug attribution.

Command Pattern:

@holdex bug dispute <commit-url> && bug author @<username>

Example:

@holdex bug dispute https://github.com/holdex/my-repo/commit/1234567890 && bug author @johndoe

3. Guideline Violation

Report a guideline violation by referencing its ID (e.g., G123). Use this to flag code that violates project guidelines.

Command Pattern:

@holdex G<number>

Example:

@holdex G123

Usage Notes

  1. Command Execution Location: Each command has specific location restrictions (see individual command documentation above). Commands can be restricted to:

    • Issue comments only: Cannot be executed in pull request comments
    • Goal issue comments only: Must be executed in a goal issue (not a regular issue or pull request)
    • Pull request comments only: Can only be executed in pull request comments
      All commands require an organization context (they must be run in a repository that belongs to an organization).
  2. Command Pattern: Commands must follow the exact pattern @holdex <object> <action> [arguments...]. The object and action are case-insensitive and will be normalized to lowercase.

  3. Error Handling: If a command fails, the bot will post a comment with error details, including the specific error message to help with troubleshooting.

  4. Success Indication: Successful commands will add a reaction to your comment:

    • 👀 (eyes) reaction indicates the command was successfully parsed and triggered
    • 🚀 (rocket) reaction indicates the command task completed successfully
  5. Asynchronous Execution: Commands are executed asynchronously. After parsing and validation, the command is triggered and runs in the background. The initial reaction (👀) indicates the command was accepted, while the final reaction (🚀) indicates completion.

  6. Positional Arguments: Some commands support positional arguments as a convenience - they can be used instead of flags for common parameters. Positional arguments are captured for arguments that don't start with --.

  7. Default Values: Some optional parameters have default values. Check individual command documentation above for details. If a parameter is not provided and has no default, it will be omitted.

  8. Value Formatting:

    • Use quotes for values with spaces: --key="value with spaces" or --key='value with spaces'
    • Values without spaces don't need quotes: --key=value
    • Single or double quotes are supported
    • Values are parsed exactly as provided (case-sensitive for values)