feat(seo,a11y): schema fixes, content enrichment, abbreviation tooltips#8
Merged
Conversation
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>
There was a problem hiding this comment.
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
dateModifiedto 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’sabbrextension, 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.
| - 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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
dateModifiedwas 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"streetAddress: "Nonnenstraße 11d"andpostalCode: "04229". Person address also getspostalCode: "04229".2. Content enrichment — sub-agent research
Three parallel research agents discovered:
netresearch/ldap-manager(primary maintainer, not just contributor); 43 tonetresearch/ofelia; 21 tonetresearch/go-cron(DAG engine,@triggered). PRs tohybridauth/hybridauth(3.4 k★),repowise-dev/repowise(1.4 k★),gofiber/cli,Seagate/cloudfuse,phpDocumentor/guides(7 PRs Jan 2026). Owner ofnetresearch/claude-code-marketplace(34★). Correction:TYPO3/tailorandTYPO3-Documentation/ddev-typo3-docshave 0 merged PRs — were overstated in the prior CV.sebastian.mendelsince 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).This translates into:
Person.knowsAboutgrows 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.descriptionnow mentions OSS maintainership, the internal RFC framework, and the agentic-development training programme.Occupation.skillsmirrors the leadership / governance / security / AI areas as a structured English-language string.src/cv-executive.de.mdandsrc/cv-technical.de.mdOpen-Source sections restructured: explicit maintainership ofnetresearch/ldap-manager/ofelia/go-cron/claude-code-marketplace, corrected TYPO3 Documentation list (keptphpDocumentor/guides+codesnippet+t3docs-*which are real merged PRs, droppedtailor/ddev-typo3-docswhich only have open PRs).3. WCAG 3.1.4 AAA — Abbreviations
New
src/_abbreviations.mddefines ~30 entries in Markdown'sabbr-extension syntax.build.pyloads the file once, appends it to every CV body before render, and enables themarkdownlibrary'sabbrextension.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
<abbr>tokens rendered (executive CV)dateModifiedformatstreetAddress+postalCode