Skip to content
Skip to main content
Novel Systems home
Decision log
D-059August 5, 2026

The parent's year comes back, in its own field, with a rule holding it there

Decided

2019 is published again on /about, attached to Novel Blinds Inc. and to nothing else. COMPANY.founded stays 2023 and remains the only number any count of software years may derive from.

Affects: lib/constants.ts (PARENT_OPERATING_SINCE, COMPANY.parentOperatingSince), app/about/page.tsx, scripts/check-claim-consistency.mjs (parent-year-as-software-age), lib/engineering-practice.ts (CLAIM_RULE_COUNT 11 → 12)

What the problem was. One field held both facts until 4 August. That is what produced *"since 2019"* and *"seven years building software"* about an engine first written in 2023, and it put 2019 into foundingDate in the Organization JSON-LD, where a procurement scraper reads it as an assertion rather than as a phrase. The correction deleted 2019 outright. That fixed the overstatement and opened a smaller hole: /about then read as though nothing existed before 2023, and a reader who knew the parent predated that had no way to reconcile the page with what they knew.

Why two fields rather than better copy. The failure was structural. A single field cannot be true about two entities with two histories, and any wording that made it appear to be would be one edit away from collapsing back. Two fields with two owners is the only version where the mistake requires deliberate effort.

The rule is the part that lasts. parent-year-as-software-age fails the build on a bare 2019 anywhere under app/, lib/, components/ or config/ outside lib/constants.ts, and on any span of text counting years next to *software*, *product*, *platform*, *engine* or *building*. It was proven to fire against all three shapes the original defect took before it was committed. Its owning declaration is PARENT_OPERATING_SINCE, hoisted to a module-level constant for exactly that purpose — the checker aborts rather than passing quietly if that name disappears.

What was accepted as a cost. CLAIM_RULE_COUNT moves 11 → 12, which changes a figure published on /security. D-054 declined a twelfth rule partly to avoid that. The difference is that D-054 was weighing a copy label; this is a year that was wrong in structured data for months, which is exactly what the sentence on /security — *"figures this site once stated two ways"* — describes. The published number moves because it is interpolated, not retyped.

What would have to change for this to be wrong. If Novel Blinds Inc. ever stops being disclosed as the parent, the field and the rule both come out.