> Redacted excerpt. Employer-identifying detail and job-search working notes have been removed. > The process structure and every self-correction are intact. The full document is not public. > Source: `docs/dual-positioning-review.md` (private repo). > > Companion to [/writing/agentic-delivery/](https://jasonstiltner.com/writing/agentic-delivery/). # Spec and amendments The site's content was rewritten between 2026-08-29 and 2026-08-31 by an AI coding agent (Claude Code) working from a written brief. The brief was amended twice. This is the structural record: what each section asked for, what shipped, what the agent corrected, and what was superseded. One commit per section. Full diffs are in `git log`; this is the review summary. ## Document structure | Document | Sections | Commits | |---|---|---| | Original brief | §1-§7 | 6 | | Amendment 1 | A1-A7 | 6 | | Amendment 2 | D0-D6 | 6 | Amendments are documents, not chat corrections. Each names the sections it supersedes. A superseded section is not deleted or edited — it stays in the record, marked, so that any claim on the live site can be traced back to the instruction that produced it. ## Original brief — §1-§7 - **§1 — Critical bugs.** Per-page canonical/OpenGraph metadata (a new `buildMetadata()` helper applied to all 12 routes), the root title template's doubled suffix, a broken internal link, and a stale `/tools` nav entry redirected away. - **§2 — Numeric and internal consistency.** Reconciled a pattern count that disagreed between the page body and its metadata; audited every headline statistic site-wide for cross-page agreement. - **§3 — Claim calibration.** A new `ProvenanceTag` component (simulated / production-deployed / peer-reviewed) applied to every results section; the three most extreme effect sizes each got a sentence framing them as internal comparisons inside a self-designed simulation rather than externally validated results; two dead placeholder links removed; "reproduce this" pointers added next to specific headline numbers rather than as a generic repo link at the page foot. - **§4 — Content cleanup.** Removed two "coming soon" stubs. Surfaced three fully-built project pages that were linked from nowhere — not nav, not the research index, not the sitemap. Unified the identity line across homepage, metadata, and JSON-LD. - **§5 — Ground-truth inventory.** A list of verified facts. Not a section that shipped code: the reference every other section was checked against. See "Fact inventory" below. - **§6 — Pattern-language upgrade.** Extended all 28 HALA patterns to a full Context → Problem → Forces → Solution → Implementation → Failure modes → Connections → Worked instance → When-not-to-use structure, and added a section engaging the central objection to the whole framework in-text rather than omitting it. - **§7 — Review artifacts.** This document and the open-questions list. ## Amendment 1 — A1-A7 Reconciled against the completed original-brief work by minimal diffs, per the amendment's own instruction: no template the original brief had touched (`buildMetadata()`, redirects, the root layout title) was touched again. This amendment changed page copy only. - **A1 — Hero legibility.** A compact numbers-only credentials band below the existing summary. - **A2 — Scope and impact.** A new About section translating the track record into four staff-evaluation axes, every line traceable to §5 or to this amendment's new facts. - **A3 — System-design legibility.** Reordered the Aegis hero so systems-architecture framing leads and the research connection supports it. Calibration caveats (single-node, no performance benchmarks, not deployed) were kept verbatim, not softened. - **A3.2 + A5 — Found outside the brief's scope.** The agentic-orchestration page carried two large pre-existing sections of explicit job-seeking language — a subheading reading "Why I'm Seeking Senior ML Engineering Roles," among others — live on the site, in direct violation of A5's own rule. Both sections were rewritten and the absence verified by grep. - **A4 — Search legibility.** Search terms embedded only where already true. - **A6 — Interview-prep notes.** Private, not published. - **A7 — Six-second scan test.** The built homepage screenshotted at 1280×800 and 390×844 with no scrolling, to check that a cold reader can answer three questions above the fold. ### The supersession note Quoted verbatim from the head of the Amendment 1 section: > **Note on Amendment 2 (below):** Amendment 2 superseded some facts asserted here — most > notably "founding-engineer tooling" in the A1 credentials band and "180+ hospitals… personal > reach" framing throughout. This section is left as the historical record of what shipped in > Amendment 1's commits; it is not the current state of the site. See Amendment 2 below for > what changed and why, and the live site / git log for ground truth. ## Amendment 2 — D0-D6 Corrected two wrong facts carried by the original brief and Amendment 1's copy, restructured every scale claim so it reads as the environment rather than as personal reach, and anonymized the current employer across every public surface. - **D1 — Fact corrections.** "First engineering hire" → "third engineer hired, first Staff Engineer," stated plainly rather than softened, corrected in all four places it appeared. HCA Healthcare named explicitly as the approved setting descriptor. Every bare "180+ hospitals" / "44M+ patient encounters" phrasing rewritten so the number attaches grammatically to the organisation or to "an environment," never to "I" or "my." - **D2 — Employer anonymity.** Removed a "(current employer, specifics confidential)" annotation, which was exactly the name-withheld meta-commentary D2 forbids, and replaced it with an approved descriptor stated plainly. - **D3 / D4 — Private-file handling and repo hygiene.** Not published. - **D6 — Verification.** Below. ## Corrections the agent made to its own instructions Four, quoted verbatim. Each is a case where the brief asserted something that did not survive being checked, and the agent said so in the record rather than implementing it. **§1, on the canonical-URL bug:** > **Correction to the brief:** `/about/` was *not* already correct — it had the same > homepage-canonical-fallback bug as the others; only `/writing/hala/` was. **§1, on the rendering claim:** > **Correction to the brief:** the "prerender/SSR is broken" claim didn't hold up — > `npm run build` confirmed every route, including the old `/research/hala`, was already fully > static-prerendered with real body content in the server HTML. No output-mode change was > needed. **§2, on the brief's own arithmetic:** > **revised the brief's own example.** The brief assumed v1 = 18 patterns, "+6 new" (which > doesn't reconcile with 28 either — 18+6=24). The data's own `isNew` flags (the actual > per-pattern source of truth) show **8** patterns flagged new, not 6. So the reconciled > version history now reads v1.0 = 20 patterns, v2.0 = +8 new = 28 total. This is the > internally consistent reading; flagged for your awareness since it isn't the number the brief > itself suggested. **§3, on a claim the agent had made earlier in the same session:** > **Correction to my own plan:** I initially told you (based on an earlier grep) that no > p < 10⁻⁷² existed on the site — I'd missed the literal `-72` markup in > `SelfSelectionSection.tsx` on the first pass. It's fixed now. A fifth correction, made after the fact and against this document itself, is at the end of D6. ## Fact inventory §5 supplied a list of verified facts, and the standing instruction was: **don't assert what isn't covered.** The consequence is visible in the [open questions](https://jasonstiltner.com/process/open-questions.md) list — where the brief asked for something §5 didn't support, the agent flagged it instead of filling the gap. Two representative cases: - Asked to reflect a work history, it declined to build a dated timeline because the source's own ordering was ambiguous, and asked for the real order instead of guessing one. - Given a version-history example in the brief, it found the numbers didn't reconcile and derived the correct ones from the data's own per-item flags. See §2 above. ## D6 — Verification Grep results, one line per target, run against the whole repo excluding `node_modules`/`.next`: | Target | Hits before | Hits after (published surfaces) | Hits after (private, gitignored) | |---|---|---|---| | `first engineering hire` / `founding engineer` | 6 (site) + 2 (notes) | 0 | 2 (correction commentary only) | | `Fortune 50` | 0 | 0 | 0 | | impact-phrased `44M`/`186`/`180+` | 11 (site) | 0 (2 remaining, both environment-scoped) | — | | ML-flavored feedback-platform copy | 1 (About, blended paragraph) | 0 | — | | current employer / parent / branded product names | 0 in published surfaces; 0 in history up to that commit | 0 | 2 files (by design) | | `(current employer, specifics confidential)` / name-withheld phrasing | 1 | 0 | — | **Attestation:** no headline or body claim on the live site phrases HCA Healthcare's or the current employer's organizational scale as personal impact — every hospital-scale number is grammatically attached to "HCA Healthcare" or to "an environment," never to "I"/"my"; no public surface (page copy, metadata, JSON-LD, OG tags, alt text, the regenerated PDF, or file names) names the current employer, its parent, or a branded product of theirs. ### Correction (2026-09-01) Quoted verbatim from the source document: > As originally written, this section spelled the three target strings out in full in order to > record that they appeared nowhere, and the table above asserted "0 everywhere (incl. git > history)." Committing that sentence wrote the strings into a tracked file and into git > history, so the claim was false from the moment it was recorded. The grep was accurate; > writing its result down invalidated it. Found on 2026-09-01 while vetting this document for > publication, two days after it was committed. The wording above now describes the check > without naming its targets, and the history claim is scoped to the commits that preceded it. > Per the decision of 2026-09-01, history is not rewritten. No published surface was ever > affected: `src/` and `public/` were clean before and after, and remain so. > > The general rule this produces: **a verification record must not name what it certifies > absent, or the check must be re-run after the record is written.** The first is cheaper and > is what was applied here. ## What was removed from this excerpt Five things, by category, so the shape of the omission is visible: 1. Detail that identifies the current employer by description rather than by name. 2. Working notes for a job search — resume drafts, interview-prep material, and the open questions attached to them. 3. One personal-history item the source explicitly instructs is not to be asserted anywhere. 4. The method used to probe repository visibility. 5. The three redacted employer strings themselves. Nothing was removed because it was unflattering. Every correction, every unmet bar, and every finding the process made against itself is above.