Wizard uses a team members list to map GitHub users to personal HR repositories, track onboarding dates, and enforce PR time tracking rules.
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.
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
}
]
| 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. |
isMandatory.startDate when a member's leave.yaml is not yet present.repo and issue fields.