Wizard uses a whitelist configuration file (config/whitelist.json) to control
PR time tracking requirements, Goal validation behavior, and related
processing rules.
holdex/trial).VERCEL_ENV (production, preview, or
development). This does not affect PR time tracking rules.whitelist.json
and is located in the config/ directory.team-members.json file in
holdex/hr-internal (HR access
only).The config/whitelist.json file follows this structure:
{
"whitelistedOrganizations": ["org-name-1", "org-name-2"],
"specDisabledOrganizations": ["org-name-1"],
"excludedUsers": ["username-1", "username-2"],
"excludedReviewRepos": ["org/repo-1", "org/repo-2"],
"excludedOrganizations": {
"production": ["org-name-3", "org-name-4"],
"preview": ["org-name-5", "org-name-6"],
"development": []
}
}
The team-members.json file in holdex/hr-internal follows the structure
documented in config/team-members.json.example in this repository.
excludedOrganizations and VERCEL_ENVEach key under excludedOrganizations must match the deployment’s
VERCEL_ENV
value:
| Key | Typical deployment |
|---|---|
production |
Production Vercel deployment |
preview |
Preview deployments (PRs, non-production branches) |
development |
Local development (vercel dev or unset VERCEL_ENV, which defaults to development in this app) |
Wizard reads excludedOrganizations[VERCEL_ENV] at runtime. An org listed only
under production is ignored on production but still processed on preview and
local dev (if not listed under those keys).
To update the whitelist:
config/whitelist.json file.whitelistedOrganizations.specDisabledOrganizations for orgs that
do not use markdown specs in Goals.excludedUsers.org/repo pairs under excludedReviewRepos
(repos where reviews shouldn't count toward stats).excludedOrganizations key (production, preview, or development).excludedReviewRepos only affects review-related metrics
(e.g. reviews, total_reviews);
other stats from those repos are still counted.excludedOrganizations.<vercel-env> for the current deployment:NODE_ENV is production): GitHub events from listed
orgs are dropped before Trigger.dev tasks run.Use different keys when you need different behavior per environment—for example,
exclude a dev playground org on production only so preview and local instances
can still process it.
For organizations listed in specDisabledOrganizations, Wizard skips
markdown-spec validation when processing Goal and Draft Goal issues:
docs/specs/*.md on goal open, and no
validation of the # Spec section or spec document URLs.# heading). These checks assume
the standard Goal layout that includes a Spec section.This list is independent of whitelistedOrganizations. An org can be
whitelisted for PR time tracking and spec-disabled for Goals at the same time.
The @holdex goal create-spec command is not blocked for spec-disabled orgs;
it remains available for manual spec creation when needed.
To update the mandatory users:
team-members.json in
holdex/hr-internal.isMandatory to true for the users that must always submit PR time.If a user is in the excludedUsers list,
they will always be excluded from PR time tracking requirements,
regardless of their organization or mandatory status.
This takes precedence over all other rules.
For users not in the excluded list, the following rules apply:
| Organization Whitelisted | User Mandatory | PR Time Submission Required? |
|---|---|---|
| ✅ Yes | ❌ No | No |
| ✅ Yes | ✅ Yes | Yes |
| ❌ No | ❌ No | Yes |
| ❌ No | ✅ Yes | Yes |