Skip to content

feat(seo,a11y): schema fixes, content enrichment, abbreviation tooltips#8

Merged
CybotTM merged 1 commit into
mainfrom
feat/structured-data-fixes
May 10, 2026
Merged

feat(seo,a11y): schema fixes, content enrichment, abbreviation tooltips#8
CybotTM merged 1 commit into
mainfrom
feat/structured-data-fixes

Conversation

@CybotTM
Copy link
Copy Markdown
Owner

@CybotTM CybotTM commented May 10, 2026

Three changes in one PR — driven by the schema.org validator findings, a WCAG 3.1.4 AAA gap, and a sub-agent research pass over GitHub, GitLab, and Confluence.

1. Schema.org validator findings — resolved

  • dateModified was a date-only string ("2026-05-10") which the validator flagged as "Invalid datetime value". Now an ISO 8601 datetime with explicit UTC offset:
    "2026-05-10T16:47:40+00:00"
  • Netresearch DTT GmbH PostalAddress now has streetAddress: "Nonnenstraße 11d" and postalCode: "04229". Person address also gets postalCode: "04229".

2. Content enrichment — sub-agent research

Three parallel research agents discovered:

Source Notable findings already missing from the CV
GitHub 91 merged PRs to netresearch/ldap-manager (primary maintainer, not just contributor); 43 to netresearch/ofelia; 21 to netresearch/go-cron (DAG engine, @triggered). PRs to hybridauth/hybridauth (3.4 k★), repowise-dev/repowise (1.4 k★), gofiber/cli, Seagate/cloudfuse, phpDocumentor/guides (7 PRs Jan 2026). Owner of netresearch/claude-code-marketplace (34★). Correction: TYPO3/tailor and TYPO3-Documentation/ddev-typo3-docs have 0 merged PRs — were overstated in the prior CV.
GitLab (git.netresearch.de) Account sebastian.mendel since 2016, 267 merged MRs across 90 projects, 31 namespaces. 17 internal AI-skill projects since late 2025; 100+ MRs across 25+ engineering & DevOps tooling projects (Concourse, Traefik fleet, Composer registry, Matrix homeserver, Renovate infrastructure, AWS DNS automation).
Confluence 53+ authored items, oldest 2020. Highlights: T3-RFC framework + RFC-001, "Best Practices für Agentic Coding" curriculum, "Optimizing Claude Code Usage", "Motivation for a TYPO3 App System" PRD, "Supply-Chain-Attacken am Beispiel Shai-Hulud", yearly engineering retros and mottos.

This translates into:

  • Person.knowsAbout grows from 27 to 56 entries, grouped: leadership & methodology (engineering leadership, governance, curriculum design, mentoring, organizational change management, stakeholder communication, presales advisory), architecture, AI-era engineering (agentic development, MCP, prompt engineering, skill marketplace), security & compliance (BSI IT-Grundschutz, BSI C5, ISMS docs, supply-chain security), operations & platforms (job scheduling, cron / DAG engines, LDAP / AD, reverse proxy / Traefik, Matrix / Synapse, Composer registry, OSS maintainership), and the existing stack.
  • Person.description now mentions OSS maintainership, the internal RFC framework, and the agentic-development training programme.
  • Occupation.skills mirrors the leadership / governance / security / AI areas as a structured English-language string.
  • src/cv-executive.de.md and src/cv-technical.de.md Open-Source sections restructured: explicit maintainership of netresearch/ldap-manager / ofelia / go-cron / claude-code-marketplace, corrected TYPO3 Documentation list (kept phpDocumentor/guides + codesnippet + t3docs-* which are real merged PRs, dropped tailor / ddev-typo3-docs which only have open PRs).
  • Technical CV also adds: T3-RFC initiator, agentic-development training curriculum, internal AI tooling platform (Skill-Marketplace + Composer distribution), internal knowledge base (50+ articles since 2020).
  • Executive CV Kernkompetenzen gains soft-skill bullets: curriculum design / mentoring / training programmes; stakeholder communication / presales / change management.

3. WCAG 3.1.4 AAA — Abbreviations

New src/_abbreviations.md defines ~30 entries in Markdown's abbr-extension syntax. build.py loads the file once, appends it to every CV body before render, and enables the markdown library's abbr extension.

Result: every occurrence of CTO, CMS, RFC, ISMS, BCP, DR, CI/CD, DevOps, AWS, IAM, LDAP, SQL, AAA, BSI, C5, EVB-IT, MCP, Proxmox, TER, TUGLE, etc. is wrapped in <abbr title="…"> with a German-or-English expansion as appropriate. 17 distinct <abbr> tokens currently render in the executive CV alone.

Verified

Metric Value
Performance / A11y / Best practices / SEO 100 / 100 / 100 / 100
CLS 0
<abbr> tokens rendered (executive CV) 17 distinct
dateModified format ISO 8601 with offset
Org streetAddress + postalCode present

Three changes in one PR, all driven by external feedback (schema.org
validator + WCAG 3.1.4 AAA + sub-agent research over GitHub, GitLab,
Confluence).

1. Schema.org validator findings (resolved)

   - dateModified is now an ISO 8601 datetime with explicit UTC offset
     ("2026-05-10T16:47:40+00:00") instead of a date-only string.
   - Netresearch DTT GmbH organization gets streetAddress
     ("Nonnenstraße 11d") and postalCode ("04229") on its
     PostalAddress; the Person also gets postalCode "04229".

2. Content enrichment (sub-agent driven)

   Person.knowsAbout grows from 27 to 56 entries, grouped into:
   leadership & methodology (engineering leadership, governance,
   curriculum design, mentoring, change management, stakeholder
   communication, presales advisory), architecture (incl. distributed
   systems and API design), AI-era engineering (agentic development,
   MCP, prompt engineering, skill marketplace), security & compliance
   (BSI IT-Grundschutz, BSI C5, ISMS docs, supply-chain), operations
   & platforms (job scheduling, cron / DAG engines, LDAP / AD,
   reverse proxy / Traefik, Matrix / Synapse, Composer registry,
   open-source maintainership), and the existing stack list.

   Person.description now mentions OSS maintainership, the internal
   RFC framework and the agentic-development training programme.

   Occupation.skills mirrors the leadership/governance/security/AI
   areas explicitly so search engines and LLM crawlers see them as
   first-class skills, not just keywords.

   src/cv-executive.de.md and src/cv-technical.de.md:
     - Open Source section restructured with bullet items: phpMyAdmin,
       TYPO3 (with corrected list of Documentation projects;
       phpDocumentor/guides, codesnippet, t3docs-* are accurate; tailor
       and ddev-typo3-docs were dropped because no PRs are merged
       there yet), explicit maintainership of netresearch/ldap-manager
       (Go LDAP tooling), netresearch/ofelia (Docker job scheduler),
       netresearch/go-cron (DAG engine), netresearch/claude-code-
       marketplace (public skill marketplace), Matrix ecosystem, and
       a shorter list of other OSS contributions.
     - Technical CV adds: T3-RFC framework as initiator,
       Best-Practices-für-agentische-Entwicklung curriculum, internal
       Skill-Marketplace + Composer distribution, internal knowledge
       base (50+ articles since 2020).
     - Executive CV gains soft-skill bullets in Kernkompetenzen:
       curriculum design / mentoring / training programmes,
       stakeholder communication / presales / change management.

3. WCAG 3.1.4 AAA Abbreviations

   New file src/_abbreviations.md defines ~30 abbreviations as
   Markdown abbr-extension entries (`*[KEY]: Expansion`). build.py
   now (a) loads it once per build, (b) appends it to every CV body
   before render, (c) enables the Markdown 'abbr' extension. Result:
   every occurrence of CTO, CMS, RFC, ISMS, BCP, DR, CI/CD, DevOps,
   AWS, IAM, LDAP, SQL, AAA, etc. is wrapped in <abbr title=…> with
   a German-or-English expansion as appropriate.

Verified: Lighthouse desktop preset still 100/100/100/100, CLS=0,
17 distinct <abbr> tokens render in the executive CV body, ISO 8601
datetime + Netresearch street address present in JSON-LD.

Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
Copilot AI review requested due to automatic review settings May 10, 2026 16:49
@CybotTM CybotTM merged commit 41cd440 into main May 10, 2026
5 checks passed
@CybotTM CybotTM deleted the feat/structured-data-fixes branch May 10, 2026 16:51
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the CV site’s structured data (schema.org), enriches CV content based on recent OSS/internal work, and improves accessibility by adding automatic abbreviation expansions via Markdown <abbr> rendering.

Changes:

  • Fix schema.org dateModified to use an ISO 8601 datetime with UTC offset; enrich PostalAddress fields (streetAddress/postalCode).
  • Expand and restructure Open Source + leadership/AI enablement content in both executive and technical CV variants.
  • Add a global abbreviations block (src/_abbreviations.md) and enable Markdown’s abbr extension, appending the definitions to each rendered CV body.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

File Description
src/cv-technical.de.md Adds leadership/enablement bullets and expands the Open Source section with maintainership + additional ecosystems.
src/cv-executive.de.md Extends core competencies and restructures Open Source section to highlight maintainership and corrected contributions.
src/_abbreviations.md Introduces Markdown abbr-extension definitions to render <abbr title="…"> tooltips for common abbreviations.
scripts/build.py Generates schema-valid dateModified, loads/appends abbreviation definitions to CV bodies, and enables the abbr Markdown extension.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/cv-technical.de.md
- Modernisierung von Delivery-, Build-, Release- und Backup-Prozessen
- Einführung strukturierter Architekturentscheidungen und technischer RFC-Prozesse
- Einführung strukturierter Architekturentscheidungen und technischer RFC-Prozesse (Initiator des unternehmensweiten T3-RFC-Verfahrens)
- Curriculum-Design und persönliche Durchführung eines mehrwöchigen Trainingsprogramms „Best Practices für agentische Entwicklung" für das Engineering-Team
CybotTM added a commit that referenced this pull request May 10, 2026
… sharper bullets on technical (#9)

Per spec discussed in chat. Three different treatments, one drive.

## index.html — short Leitsatz

New mantra paragraph below the existing lede:

> *Mein Fokus liegt auf langlebigen technischen Strukturen: Wissen aus
Silos holen, Komplexität erklärbar machen und Teams so befähigen, dass
Systeme nicht von einzelnen Schlüsselpersonen abhängen.*

Set in serif italic, 2 px wine-accent left rule, muted text colour —
reads as a personal statement, not a second factual sentence. Wired
through `render_index()` as a `mantra` template variable + `.cv--index
.mantra` CSS rule.

## cv-executive.de.html — full motivation section

- **Profil** first sentence rewritten to lead with *„Aufbau resilienter
technischer Organisationen"* so the framing is visible above the fold.
- New **`## Was mich antreibt`** section between *Profil* and
*Kernkompetenzen*, four paragraphs covering: structural anti-fragility
(no hidden-knowledge / single-person / accidental-history dependency);
long-lived structures, documented decisions, teams operational under
growth/change/load; leadership as multiplier
(platforms/standards/processes that reduce mental load, share
responsibility); opening the black box (measure and explain new tooling
so others can decide).

## cv-technical.de.html — sharper, no separate motivation block

The technical CV expresses the same stance as evidence rather than as
prose:

- **Profil** sentence extended to explicitly name *„Wissen sichtbar
machen, implizite Abhängigkeiten reduzieren, technische
Entscheidungsprozesse strukturieren"*.
- **Ausgewählte Beiträge** adds three new bullets: systematic silo
dismantling via documentation/RFC/internal KB, building resilient
delivery / single-point-of-failure reduction, structured
evaluation/operationalization of new technology. The existing
knowledge-base bullet is rewritten to make the *purpose* explicit (*„zur
Reduktion impliziter Wissensabhängigkeiten"*).

## Verified

- Lighthouse desktop preset: 100 / 100 / 100 / 100 on index, executive,
technical.
- CLS: 0.
- Markdown `abbr` extension continues to wrap `CTO`, `RFC`, `AI`, `IAM`,
`CMS`, `DR/BCP`, etc. inside the new prose.
- No structured-data changes — `Person.description` and
`Occupation.skills` already cover the motivation surface for crawlers
and LLMs from #8.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants