feat: apply six rulings; close Q22/Q44/Q45/Q46(b)/Q47; revert Q47's two graph fields
Pouya's rulings: Q44 (memberships current — ship the group), Q45 (PDF bio deferred to step 9), Q46(a) (three offerings pass all gates), Q46(b) (§11 ratified as the source for definitional expansions, conditional on committing the source), Q47 (set jobTitle and worksFor), the legal-advice formulation ratified without change, and Q22 closed on his own execution evidence. Q46(b): docs/reference/adrio-designations.md commits all five ADRIO expansions with reproducible sha256 (four fetches each; both review agents independently reproduced every digest). It immediately caught the error Pouya raised in the same message — §11 had said "Chartered Mediator-Arbitrator" since the file was created, ADRIO's term is "Chartered Med-Arbitrator", and the wrong form was in dist/about/index.html. Four prior review passes read that string and checked only whether it was sourced, not whether it was right. Q47 REVERTED after both review agents struck it independently. jobTitle shipped for one pass as "Mediator and Commercial Arbitrator" — the string claims-auditor had removed from this same node's description the previous day, since §4 has no row for a completed arbitration. The implementation flagged the wrong defect: it argued about scoping and missed that the whole string was already struck. worksFor was reverted because ProfessionalService.provider is this Person, so provider -> Person -> worksFor asserts a same-entity claim transitively. Now jobTitle: 'Mediator', no worksFor. Q49 asks for the two §4 rows. Q44: memberships render with NO currency warranty (his condition), and R10 is re-armed with an event trigger rather than a date since he declined renewal-date tracking. Q22: §7 goes to PROVISIONED; R17 carries the first rotation date, 2026-11-26. New CLAUDE.md convention, his: never suppress stderr in a verification script — suppression turns "it failed" into "it found nothing". Two review rounds resolved 48 findings; the majority of the second round were defects in the first round's fixes, including a re-widening of §4's renewal period inside the comment that corrects that widening, a cited guard in schema.ts that does not exist, and a struck §9 row describing a reverted state. Three findings were one lift from a public page: docs/03's /for-parties/ directive breached D13 twice, docs/01 told an implementer an unpublishable strip could ship, and docs/07 priced three ungated offerings with no gate note. Also commits docs/reference/adrio-extract/ — the extraction script and its five outputs, since the digests covered raw HTML and said nothing about the text the term counts were run against. The equivalent gap for Q22's IAM verification is NOT closed and is Q52. Verified: astro check 0/0/0, eslint + prettier clean, build 2 pages, 0 .js emitted, minifier guard silent, animation-timeline intact, no currency-warranty phrasing in dist, JSON-LD correct on both pages. NOT run: Lighthouse (tool unavailable until step 7, R11); HTML validator. Opens Q48-Q53. Live reminders: R1, R10, R11, R13, R14, R15, R16, R17. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0148NztQskLKKApP5SzAA78e
This commit is contained in:
co-authored by
Claude Opus 5
parent
c576b9a85f
commit
77a7b410b2
+76
-19
@@ -16,15 +16,31 @@
|
||||
* 1. `LegalService` — NEVER. docs/04: schema.org defines it as a business
|
||||
* providing legal advice and *representation*, which asserts in
|
||||
* machine-readable form exactly what D13 bars. `ProfessionalService`.
|
||||
* 2. `worksFor` — omitted. Populating it either names the boutique (D16) or
|
||||
* misstates the employer. `jobTitle` carries the role on its own.
|
||||
* 2. `worksFor` — **STILL OMITTED, and the reason has changed.** The original
|
||||
* ground was "either names the boutique (D16) or misstates the employer".
|
||||
* Q47 (2026-08-28) answers the **D16 half**: `jobTitle` now describes this
|
||||
* practice, so naming SML Company Ltd would not name the boutique. It was
|
||||
* set on that basis for one pass and `adversarial-reviewer` found why that
|
||||
* is not sufficient — **the second half was never addressed:**
|
||||
* `ProfessionalService.provider` is this Person, so `provider → Person →
|
||||
* worksFor → SML` asserts transitively a same-entity claim **no §4 row
|
||||
* makes** — and one `src/pages/about.astro` DELETED from visible prose as
|
||||
* *"a corporate-structure claim"*. *(This read "defeats a guard in this
|
||||
* file… that `aboutGraph`'s comment explicitly declines to assert". That
|
||||
* comment covers `ProfilePage`, `BreadcrumbList` and `memberOf` and says
|
||||
* nothing about SML — the citation was EMPTY. Found by
|
||||
* `adversarial-reviewer`: a claim whose referent cannot be reached is
|
||||
* unverifiable by construction, this repo's own rule, applied to the
|
||||
* argument for a revert. The transitive argument stands on its own.)* §4 also says "**alongside** the practice" where Q47 says
|
||||
* "operates **through**" — different relations, and only the first has a
|
||||
* row. **Q49** asks Pouya for the row. Until then, withheld.
|
||||
* 3. `priceRange` — omitted until `/fees/` exists (build step 9). docs/04
|
||||
* gates it on that page being real.
|
||||
*
|
||||
* AND Q.Arb IS NOT IN `hasCredential`. It commenced August 2026 and is not
|
||||
* held. Q.Med is. That asymmetry is the whole point of the property.
|
||||
*/
|
||||
import { CONTACT, CREDENTIALS, ROLE, SITE } from './site';
|
||||
import { CONTACT, CREDENTIALS, PRACTICE_JOB_TITLE, SITE } from './site';
|
||||
|
||||
/** Stable node ids, so pages cross-reference rather than duplicate. */
|
||||
export const PERSON_ID = `${SITE.url}/about/#person`;
|
||||
@@ -63,7 +79,14 @@ export function personNode(imageUrl?: string) {
|
||||
'@id': PERSON_ID,
|
||||
name: SITE.name,
|
||||
url: `${SITE.url}/about/`,
|
||||
jobTitle: ROLE.title,
|
||||
/* Q47: PRACTICE_JOB_TITLE, not ROLE.title — the boutique role stays in
|
||||
visible copy and out of this graph, which is what the ruling was for.
|
||||
The VALUE is the narrowest form §4 rows; it shipped for one pass as
|
||||
"Mediator and Commercial Arbitrator" and both review agents struck it as
|
||||
the role-shaped claim removed from `description` the previous day. See the
|
||||
constant in site.ts for the full reasoning, and Q49 for the open row.
|
||||
NO `worksFor` beside it — withheld pending the same question. */
|
||||
jobTitle: PRACTICE_JOB_TITLE,
|
||||
description:
|
||||
'Mediator in Toronto, accepting commercial arbitration appointments. ' +
|
||||
'Q.Med designation through ADRIC and ADRIO; the Q.Arb pathway commenced ' +
|
||||
@@ -159,23 +182,57 @@ export function homeGraph(imageUrl?: string) {
|
||||
* no visible breadcrumb, and the header nav marks it as current — so
|
||||
* emitting one would assert a navigation structure the page does not show.
|
||||
* Breadcrumbs begin at the two-level pages: `/practice/<area>/`, `/insights/<slug>/`.
|
||||
* 3. `memberOf` for the four memberships. Declined on R10 / **Q44** — and
|
||||
* the visible page reached the same answer one round later, which is worth
|
||||
* recording: `/about/` now publishes **no memberships group at all**,
|
||||
* because R10 is a prohibition on shipping such a page and the
|
||||
* re-confirmation was not obtained. So this field is not a stricter
|
||||
* standard than the page; it is the same one.
|
||||
* 3. `memberOf` — **STILL WITHHELD, AND NOW ON NARROWER GROUNDS THAN THE
|
||||
* PAGE.** Q44 closed 2026-08-28 and `/about/` **does** publish all four
|
||||
* visibly, so the earlier reasoning ("this field is not a stricter standard
|
||||
* than the page; it is the same one") no longer holds. It is now
|
||||
* deliberately stricter, for one reason that Q44 did not touch and in fact
|
||||
* sharpened:
|
||||
*
|
||||
* Two earlier versions of this comment were wrong on the facts. They said
|
||||
* "the page publishes them visibly" (it does not, as of 2026-08-28) and
|
||||
* "all four renew yearly" — §4 records yearly renewal for **the OBA
|
||||
* sections and the CTF only** and says nothing about ADRIC or ADRIO. The
|
||||
* widened form had propagated to four files.
|
||||
* **The ground is VOLATILITY, not cacheability** — and the first version of
|
||||
* this comment got that wrong in a way `adversarial-reviewer` showed proves
|
||||
* too much. It said "a scraped claim is cached and re-served by systems that
|
||||
* never re-read it", which is equally true of `hasCredential`, and
|
||||
* `hasCredential` ships. A later reader applying that principle
|
||||
* consistently would either strip Q.Med from the graph (wrong) or restore
|
||||
* `memberOf` (possibly wrong), because the stated reason does not
|
||||
* distinguish the two fields.
|
||||
*
|
||||
* The reason a machine-readable membership claim is worse than a visible
|
||||
* one stands regardless: a list on a page is corrected by editing the page,
|
||||
* while a scraped claim is cached and re-served by systems that never
|
||||
* re-read it. OCNI lapsed quietly once already. Add this when Q44 closes.
|
||||
* **What distinguishes them:** a membership is a fact with a **renewal
|
||||
* cycle** — §4 records yearly renewal for **the OBA sections and the CTF**
|
||||
* and says **nothing** about ADRIC's or ADRIO's period — and Pouya has
|
||||
* declined to track the dates, so the claim's truth can change with nobody
|
||||
* holding the schedule. A designation is not on a renewal cycle this record
|
||||
* knows of. *(This paragraph said "a membership list is a set of yearly
|
||||
* renewing facts" until 2026-08-28 — the widened form, FOURTH occurrence,
|
||||
* twenty lines above this same comment's own warning that it "is still
|
||||
* wrong and still must not be written". It was also the stated ground for
|
||||
* withholding `memberOf`, so the withholding rested on a widened premise.
|
||||
* Found by `claims-auditor` on re-audit.)* Caching only matters because the
|
||||
* underlying fact
|
||||
* moves — so volatility is the reason and caching is the mechanism.
|
||||
*
|
||||
* ⚠️ **AND `hasCredential` IS NOT SAFE BY THAT TEST — see Q48**, raised in
|
||||
* this same change set: ADRIO states a membership-in-good-standing retention
|
||||
* condition for C.Med and C.Arb and states none for Q.Med, and the reason
|
||||
* it states none looks like page type rather than absence of a condition.
|
||||
* **If Q.Med retention IS contingent on ADRIO membership currency, then
|
||||
* `hasCredential` — which ships — carries the higher exposure of the two.**
|
||||
* That is an argument for answering Q48, not for adding `memberOf`.
|
||||
* OCNI lapsed quietly once already; §4 still carries it as "not current, do
|
||||
* not publish".
|
||||
*
|
||||
* **This is a judgement, not an instruction from Pouya.** Q44's Blocks
|
||||
* column listed `memberOf` among the things it gated, so closing Q44 does
|
||||
* unblock it; his ruling said "ship the group", which is the visible one,
|
||||
* and said nothing about the graph. Reversing this is four lines and his
|
||||
* call — it is flagged in the session report rather than buried here.
|
||||
*
|
||||
* *Two earlier versions of this comment were wrong on the facts: they said
|
||||
* the page published them visibly when it did not, and that "all four renew
|
||||
* yearly" when §4 records yearly renewal for the OBA sections and the CTF
|
||||
* only. The first is now true again; the second is still wrong and still
|
||||
* must not be written.*
|
||||
*/
|
||||
export function aboutGraph(imageUrl?: string) {
|
||||
return {
|
||||
|
||||
+157
-13
@@ -49,19 +49,42 @@ export const SITE = {
|
||||
export const CREDENTIALS = {
|
||||
designations: ['Q.Med (ADRIC / ADRIO)'],
|
||||
inProgress: ['Q.Arb — commenced August 2026'], // [verified 2026-08-26]
|
||||
goal: 'C.Med-Arb (Chartered Mediator-Arbitrator)',
|
||||
/**
|
||||
* "Chartered Med-Arbitrator" — ADRIO's own term
|
||||
* (docs/reference/adrio-designations.md). This read "Chartered
|
||||
* Mediator-Arbitrator" until 2026-08-28, which was wrong; Pouya caught it and
|
||||
* it was his own error, carried from the strategy brief and never sourced.
|
||||
*
|
||||
* UNCONSUMED AS OF 2026-08-28 — nothing imports `CREDENTIALS.goal`. `/about/`'s
|
||||
* credential arc hand-types all three designations instead, which is the drift
|
||||
* shape this repo keeps paying for (see ContactBand's 52ch/46ch divergence).
|
||||
* It is corrected rather than deleted because `/med-arb/` at build step 4 is
|
||||
* its natural consumer: either that page uses it, or this line comes out.
|
||||
*/
|
||||
goal: 'C.Med-Arb (Chartered Med-Arbitrator)',
|
||||
education: ['JD, Bond University'],
|
||||
certifications: [
|
||||
'Kompass Arbitration Certificate Program',
|
||||
'Stitt Feld Handy — negotiation and ADR workshop series',
|
||||
/* "sequence", NOT "series" — §4: "Stitt Feld Handy negotiation and ADR
|
||||
workshop **sequence** — completed". This list said "series" while the bio
|
||||
prose on the same page said "sequence": one certification, two names, one
|
||||
page. Found by `claims-auditor` 2026-08-28. Same shape as the C.Med-Arb
|
||||
error — a third-party programme name that four review passes read without
|
||||
checking it was right. */
|
||||
'Stitt Feld Handy — negotiation and ADR workshop sequence',
|
||||
],
|
||||
languages: ['English', 'Farsi'],
|
||||
/**
|
||||
* [verified 2026-08-26 — Pouya, AGENTS.md Q28 and the CTF addition of the same
|
||||
* [verified 2026-08-28 — Pouya, AGENTS.md Q44] — re-stamped when Q44 closed;
|
||||
* the original confirmation was 2026-08-26 (Q28 plus the CTF addition of the same
|
||||
* date] — and FOR NOW.
|
||||
*
|
||||
* WHAT §4 ACTUALLY SAYS ABOUT RENEWAL, because a widened version of it reached
|
||||
* a public page. §4: *"Both the OBA sections and the CTF renew yearly."* It
|
||||
* a public page. §4, quoted exactly: *"the OBA sections and the CTF renew
|
||||
* yearly"* — NOT "Both the OBA sections…", which is how this comment quoted it
|
||||
* until 2026-08-28. The substance was right and the quotation marks were not,
|
||||
* in the comment written to stop a widened paraphrase of this exact sentence.
|
||||
* Found by `claims-auditor`. It
|
||||
* says **nothing** about ADRIC's or ADRIO's renewal period. An earlier form of
|
||||
* this comment read "Both the OBA sections and the Canadian Tax Foundation
|
||||
* renew yearly, so every line below is a fact with a shelf life", which is two
|
||||
@@ -70,12 +93,21 @@ export const CREDENTIALS = {
|
||||
* `/about/`, and into §9 Q44. Exactly the SES-DKIM duplication shape: the copy
|
||||
* that goes stale is the one nobody re-reads, and this copy became public copy.
|
||||
*
|
||||
* **NOT PUBLISHED AS OF 2026-08-28 — R10 / Q44.** R10 requires a
|
||||
* re-confirmation *"before any page listing memberships ships"*, `/about/` is
|
||||
* that page, and the re-confirmation is a fact only Pouya holds. It was not
|
||||
* obtained, so `/about/` ships its Credentials section WITHOUT a memberships
|
||||
* group and carries a `TODO(pouya)`. Do not render this array on a public page
|
||||
* until Q44 closes.
|
||||
* **PUBLISHED FROM 2026-08-28 — Q44 CLOSED.** Pouya re-confirmed all four as
|
||||
* current, which discharges R10's prohibition, and `/about/` now renders a
|
||||
* Memberships group from this array. Re-stamped `[verified 2026-08-28 —
|
||||
* Pouya]`; the earlier stamp was 2026-08-26.
|
||||
*
|
||||
* ⚠️ **RENDER THE LIST; NEVER RENDER A CLAIM ABOUT ITS CURRENCY.** No
|
||||
* "renewed annually", no "current as of", no "listed as current", no stamp
|
||||
* date in the markup. Pouya's ruling: *"List the memberships; promise nothing
|
||||
* about their future state. The list is a snapshot, and only §4's stamp says
|
||||
* when it was taken."* He declined renewal-date tracking, so there is no date
|
||||
* behind such a sentence and nothing in this repo could support one.
|
||||
*
|
||||
* R10 stays live and now fires on an **event** rather than a date: re-confirm
|
||||
* before any cutover or major republish. OCNI is why — §4 carries it as lapsed
|
||||
* and unpublishable, and that was found roughly a year late.
|
||||
*
|
||||
* NOT OCNI (lapsed — §4: "not current, do not publish") and NOT the Law
|
||||
* Society: listing the LSO implies licensure, which D13 bars. Do not add
|
||||
@@ -105,9 +137,22 @@ export const BOUTIQUE = 'a Toronto litigation and ADR boutique' as const;
|
||||
* these are the two where the wording IS the compliance.
|
||||
*/
|
||||
export const ROLE = {
|
||||
/** §4 verbatim. docs/04: this is `jobTitle` in the Person JSON-LD, and
|
||||
* `worksFor` is OMITTED — populating it either names the boutique (D16) or
|
||||
* misstates the employer. */
|
||||
/**
|
||||
* §4 verbatim, and it is the VISIBLE role only.
|
||||
*
|
||||
* NO LONGER THE JSON-LD `jobTitle` — Q47, ruled 2026-08-28. This string was
|
||||
* both the visible role line and the Person node's `jobTitle`, which put
|
||||
* "Director of Firm Operations" on a node whose `url` is this ADR practice's
|
||||
* `/about/` — so a consumer could attach the boutique title to this entity.
|
||||
* Pouya's ruling splits them: the graph carries PRACTICE_JOB_TITLE below,
|
||||
* while this string stays exactly where it was in visible copy ("I am
|
||||
* {ROLE.title} at {ROLE.at}").
|
||||
*
|
||||
* **The graph carries NO `worksFor`.** This sentence said it did — "the graph
|
||||
* now carries PRACTICE_JOB_TITLE below and `worksFor: SML Company Ltd`" —
|
||||
* which was true for one pass and was reverted the same day (Q49(b)). Verified
|
||||
* 2026-08-28: zero live `worksFor` properties in `src`.
|
||||
*/
|
||||
title: 'Director of Firm Operations', // [verified 2026-08-25 — strategy brief §I]
|
||||
/** Always rendered with BOUTIQUE, never with a firm name (D16). */
|
||||
at: BOUTIQUE,
|
||||
@@ -133,6 +178,105 @@ export const ROLE = {
|
||||
],
|
||||
} as const;
|
||||
|
||||
/**
|
||||
* The Person node's `jobTitle` — Q47, ruled by Pouya 2026-08-28.
|
||||
*
|
||||
* NOT `ROLE.title`, and that separation IS the ruling. §4's row is one fact with
|
||||
* two halves — *"Director of Firm Operations, Toronto litigation and ADR
|
||||
* boutique"* — and visible copy always pairs them. The JSON-LD emitted only the
|
||||
* first half, on a `Person` whose `url` is this practice's `/about/`, so a
|
||||
* consumer could attach the boutique title to this entity. `worksFor` could not
|
||||
* fix it, because D16 bars naming the boutique and there was no value it could
|
||||
* take.
|
||||
*
|
||||
* His ruling breaks the bind by changing what the field is about: *"jobTitle
|
||||
* describes this practice, not the boutique role, which D16 keeps unnamed"* —
|
||||
* and that half holds: this constant names no boutique.
|
||||
*
|
||||
* **THE `worksFor` HALF OF THE RULING IS NOT IMPLEMENTED — Q49(b).** This
|
||||
* paragraph said *"`worksFor` becomes SML Company Ltd — verified, federally
|
||||
* incorporated, and the entity the practice operates through. Both are set"*.
|
||||
* Two defects, both found by `claims-auditor` on re-audit: **"Both are set" is
|
||||
* false** (reverted the same day), and *"the entity the practice operates
|
||||
* through"* was listed inside a run of verified attributes when **§4 rows only
|
||||
* "Operator of SML Company Ltd. `alongside` the practice"** — a different
|
||||
* structural relation, and precisely what Q49(b) is open on. Do not restate the
|
||||
* ruling's phrasing as though the register carried it.
|
||||
*
|
||||
* ⚠️ **IT SHIPPED FOR ONE PASS AS "Mediator and Commercial Arbitrator" AND THAT
|
||||
* WAS WRONG FOR A REASON I HAD NOT SEEN.** Both review agents found it
|
||||
* independently on 2026-08-28, which is this loop's strongest signal.
|
||||
*
|
||||
* The string `claims-auditor` struck from **this same node's `description`** on
|
||||
* 2026-08-27 was *"Mediator and commercial arbitrator in Toronto"*. The value
|
||||
* ruled for `jobTitle` is the same words minus the city — **in the most
|
||||
* role-asserting field in the vocabulary**, thirty lines below the comment in
|
||||
* `schema.ts` that explains why the words were struck. §4 verifies *"Has
|
||||
* completed multiple sole mediations"* and has **no counterpart row for a
|
||||
* completed arbitration** — only that appointments are *accepted*. Consumers
|
||||
* render `jobTitle` beside `name`: *Pouya Lajevardi — Mediator and Commercial
|
||||
* Arbitrator*, which invites the reader to supply a track record for both halves.
|
||||
*
|
||||
* **I flagged the wrong thing.** My note argued about scoping ("Commercial"),
|
||||
* and neither the note nor I noticed the whole string had already been struck on
|
||||
* different grounds. A flag aimed at the wrong defect reads as diligence and
|
||||
* provides none.
|
||||
*
|
||||
* **So this ships as the narrowest form §4 actually rows**, and Q47's purpose is
|
||||
* still served: Pouya's ruling was that `jobTitle` describe *this practice*
|
||||
* rather than the boutique role, and "Mediator" does exactly that. Nothing is
|
||||
* lost from the graph — `description` ("accepting commercial arbitration
|
||||
* appointments") and `serviceType` ("Commercial arbitration") both carry the
|
||||
* arbitration **offering**, and both cleared audit. Only the role-assertion is
|
||||
* gone.
|
||||
*
|
||||
* **AGENTS.md Q49 asks Pouya for the row.** If he wants the fuller title it
|
||||
* needs either a §4 row for arbitrator-as-practised-role, or an offering-shaped
|
||||
* value — `adversarial-reviewer` proposed `'Mediator; accepts commercial
|
||||
* arbitration appointments'`, which is honest and reads oddly for a job title.
|
||||
* His call, not one to take by tidying.
|
||||
*/
|
||||
// [derived from §4 — "Q.Med designation through ADRIC / ADRIO" + "Has completed
|
||||
// multiple sole mediations". NOT a row stamp: §4 has no row reading "Mediator",
|
||||
// and the row-level wording is what Q49(a) is open on. The 2026-08-25 date this
|
||||
// comment first carried was inherited from ROLE.title's row.]
|
||||
export const PRACTICE_JOB_TITLE = 'Mediator' as const;
|
||||
|
||||
/* `PRACTICE_ENTITY` LIVED HERE FOR ONE PASS AND IS DELETED WITH `worksFor`.
|
||||
*
|
||||
* It existed only to populate `Person.worksFor`, which is withheld pending a §4
|
||||
* row (Q49). `adversarial-reviewer` found the defect that decided it, and it is
|
||||
* one the "name only, nothing else" scoping did **not** address: the
|
||||
* ProfessionalService node's `provider` **is** this Person, so
|
||||
* `provider → Person → worksFor → SML Company Ltd` asserts transitively exactly
|
||||
* what `src/pages/about.astro` declines to assert in prose — that the practice
|
||||
* and the company are the same entity. **The referent matters and the first
|
||||
* version of this sentence got it wrong:** it said "the comment four lines above
|
||||
* it", pointing at `aboutGraph`'s note in `schema.ts`, which covers
|
||||
* `ProfilePage`, `BreadcrumbList` and `memberOf` and says **nothing** about SML
|
||||
* Company Ltd. `adversarial-reviewer` read it and found the citation empty —
|
||||
* *"a claim whose referent cannot be reached is unverifiable by construction"*,
|
||||
* this repo's own rule, applied to the argument for a revert. The real referent
|
||||
* is `about.astro`'s deleted sentence: *"the company through which the
|
||||
* engineering work is done" — a corporate-structure claim.* The transitive
|
||||
* argument stands on its own; the evidence offered for it did not.
|
||||
*
|
||||
* Two further grounds, both recorded so this is not re-added casually:
|
||||
* - §4's row says "Operator of SML Company Ltd **alongside** the practice".
|
||||
* Q47's ruling says "the entity the practice **operates through**". Those are
|
||||
* different structural relations and the second has no §4 row.
|
||||
* - `/about/` already **removed** a sentence of this exact class from visible
|
||||
* copy — see about.astro: *"the company through which the engineering work is
|
||||
* done" — a corporate-structure claim*. Publishing it machine-readably while
|
||||
* declining it in prose is the stricter-in-public, looser-in-metadata shape.
|
||||
*
|
||||
* The original omission had TWO grounds — "either names the boutique (D16) **or
|
||||
* misstates the employer**". Q47 answers the first. The second is Q49.
|
||||
*
|
||||
* `SITE.entity` already carries the string for the footer. Re-adding a second
|
||||
* constant for the same name would be the drift this file keeps paying for.
|
||||
*/
|
||||
|
||||
/**
|
||||
* THE Q41(a) SENTENCE. It lives here for the reason `ROLE` above lives here:
|
||||
* *"these are the two where the wording IS the compliance."*
|
||||
|
||||
Reference in New Issue
Block a user