pbakaus/impeccable · error
concept-seed: --register must be safer or bolder
Error message
concept-seed: --register must be safer or bolder
What it means
Thrown when --register is provided but is not one of 'safer' or 'bolder'. The register is an optional user-steering axis on the familiar-to-bold scale applied to a direction re-roll round; null/undefined means 'no steering' and is allowed, but any other value must be exactly 'safer' or 'bolder'.
Source
Thrown at plugin/skills/impeccable/scripts/concept-seed.mjs:313
scope = 'surface',
key = process.env.IMPECCABLE_CONCEPT_SEED || crypto.randomBytes(4).toString('hex'),
reroll = 0,
register = null,
mode = null,
grain = null,
platform = null,
candidateCount = 7,
catalogDir = CATALOG_DIR,
_resolvedData = undefined,
} = {}) {
if (scope !== 'surface' && scope !== 'direction') {
throw new Error('concept-seed: --scope must be direction or surface');
}
if (!Number.isInteger(reroll) || reroll < 0) {
throw new Error('concept-seed: --reroll must be a non-negative integer');
}
if (register !== null && register !== 'safer' && register !== 'bolder') {
throw new Error('concept-seed: --register must be safer or bolder');
}
if (register !== null && reroll < 1) {
throw new Error('concept-seed: --register steers a re-roll round; pass --reroll <n> with it');
}
if (register !== null && scope !== 'direction') {
throw new Error('concept-seed: --register applies to direction rounds only');
}
if (mode !== null && !SEED_MODES.has(mode)) {
throw new Error('concept-seed: --mode must be persuade, operate, read, or experience');
}
// Grain needs no mode: how much of the product is in play is independent of
// which register of work it is.
if (grain !== null && !COMPOSITION_GRAINS.includes(grain)) {
throw new Error(`concept-seed: --grain must be one of ${COMPOSITION_GRAINS.join(', ')}`);
}
if (platform !== null && !COMPOSITION_PLATFORMS.includes(platform)) {
throw new Error(`concept-seed: --platform must be one of ${COMPOSITION_PLATFORMS.join(', ')}`);
}View on GitHub (pinned to d14711ae3d)
Solutions
- Use exactly --register safer or --register bolder (or omit for no steering).
- Programmatic callers should pass register: null when no steering is desired.
Example fix
# before $ node concept-seed.mjs --scope direction --reroll 1 --register bold ... # after $ node concept-seed.mjs --scope direction --reroll 1 --register bolder ...
Defensive patterns
Strategy: validation
Validate before calling
const REGISTERS = new Set(['safer', 'bolder']);
if (register != null && !REGISTERS.has(register)) {
throw new Error('--register must be safer or bolder');
} Type guard
function isValidRegister(value) {
return value == null || value === 'safer' || value === 'bolder';
} Try / catch
try {
await seedConcepts({ scope: 'direction', register });
} catch (err) {
if (/--register must be safer or bolder/.test(err.message)) {
console.error('Use --register safer, --register bolder, or omit it.');
} else throw err;
} Prevention
- Parse --register as an enum at the CLI boundary.
- Normalize synonyms (bold/bolder) in the CLI layer, not the seeder.
- Document that omitting the flag is a valid 'no steering' state.
When it happens
Trigger: Passing --register with a typo ('bold', 'safe', 'conservative', 'aggressive') or an unsupported value. The check is register === null || register === 'safer' || register === 'bolder'.
Common situations: CLI typo; a wrapper script passing a free-text register; confusion with synonyms (conservative/aggressive).
Related errors
- concept-seed: --register steers a re-roll round; pass --rero
- concept-seed: --register applies to direction rounds only
- concept-seed: --scope must be direction or surface
- concept-seed: --reroll must be a non-negative integer
- concept-seed: --mode must be persuade, operate, read, or exp
AI-assisted analysis of pbakaus/impeccable@d14711ae3d (2026-08-13).
Data as JSON: /api/errors/c608a4b95eeccdce.
Report an issue: GitHub.