View all documentations

Team Members Configuration

Wizard uses a team members list to map GitHub users to personal HR repositories, track onboarding dates, and enforce PR time tracking rules.

File Location

The canonical file lives in the holdex/hr-internal repository (HR access only).

For production deployments, the file is fetched at build time via the TEAM_MEMBERS_SOURCE environment variable and bundled into the server — it is never committed to this repository.

For local development and preview deployments, TEAM_MEMBERS_SOURCE can be left unset. Wizard then reads config/team-members.json from your working tree. That file is gitignored and not in the repository — copy config/team-members.json.example to config/team-members.json to get started locally.

To add or update a team member, edit the file in holdex/hr-internal. Changes take effect on the next production deployment.

File Format

The file is a JSON array. Each entry follows the structure documented in config/team-members.json.example:

[
  {
    "repo": "org/hr-member-firstname-lastname",
    "username": "github-username",
    "issue": 1,
    "salaryIssue": 2,
    "agreement": "https://github.com/org/hr-member-firstname-lastname/blob/main/AGREEMENT.md",
    "startDate": "2024-01-01",
    "skipDailyReminder": false,
    "isMandatory": true,
    "isManager": false
  }
]

Fields

Field Required Description
repo Yes Personal HR repository in owner/repo format.
username Yes GitHub login for the team member.
issue Yes Issue number of the member's main HR issue in their HR repo.
salaryIssue No Issue number of the HR: Salary sub-issue, if created.
agreement No URL to the member's agreement document.
startDate No Agreement signing date (YYYY-MM-DD). Used for leave accrual when leave.yaml is missing.
skipDailyReminder No When true, skips daily PR reminder sub-issues for this member. Defaults to false.
isMandatory No When true, the member must submit PR time even if their organization is whitelisted. See Whitelist.
isManager No When true, promotes the member to product-owner responsibilities (Goals, leave approval, restricted commands where applicable). Defaults to false.
  • Mandatory users referenced in Whitelist are defined here via isMandatory.
  • Leave accrual uses startDate when a member's leave.yaml is not yet present.
  • HR sub-issues (daily reminders, bug reports, salary) are created against the repo and issue fields.