Repository navigation
Conversation
Rebuild /ai for hiring teams: one CV call to action, three working rules with a diagram, two honest proof cards (Rolevoice, the personal agent operating system), and the field notes and glossary folded into native <details>, so the page is calm and short (3,549px at 1366) while all text stays indexable and deep-linkable. Also fixes the footer Consulting link contrast (4.47:1 on light). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Owner
Author
|
Discarded at Roman's request; not merging. |
This branch was successfully deployed
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.
What and why
/aiis rebuilt as "How I implement AI" for hiring teams. It has one call to action (Download CV), three working rules with a diagram, two proof cards (Rolevoice, my personal agent operating system), and the field notes and glossary folded into native<details>. The page is shorter (3,549px at 1366, 5,168px at 390), every piece of text is still indexable and deep-linkable, and the identity matches the CV ("Technical Project Manager / Implementation Lead"). Copy is word for word from the brief's Copy section; decisions A1 to A8 are applied as written.Closes #
Changes
Before / after copy
/#workNew sections: How I work (
#principles: 3 rules, inline SVG diagram, visible caption), Proof (#proof: Rolevoice, "Deployed, pre-pilot"; personal agent operating system, "Running daily"), Field notes (#notes), Glossary (#glossary), Contact (#contact).Removed
kbMeta.mentalModel)kbPublicProof/ai(/serviceskeeps both)Code
src/data/aiKnowledgeBase.js:kbMeta,kbHero,kbClosing,kbSectionNavkbPrinciples,kbProof,kbNotes,kbGlossaryCopy,kbMaintenance(all page copy now lives in data)principleper pillarlearning-product→rolevoice("Rolevoice", "M.Sc. capstone, first pilot: German", "Deployed, pre-pilot")icon/taglinefields removedsrc/components/KnowledgeBasePage.jsx:<details name="pillar">+ matrix<details>) → Glossary<details>→ maintenance note → closing band<details>on load and onhashchangesrc/components/common/SectionNav.jsx: newSectionChipscomponent.scroll-target-groupis supported,:target-currentdrives the active chip andaria-currentis synced onscrollenduseActiveSectionIntersectionObserver sets the active chip/servicesrail and index unchangedsrc/assets/css/knowledge-base.css:@container scroll-state(stuck: top)content-visibility: auto+contain-intrinsic-sizeon#notesand#glossaryai/index.html,src/hooks/useOgMeta.js: Copy meta.applyMetagets an optionalogTitlefor the shorter OG/Twitter titlescripts/check-consistency.mjs: bans "AI Implementation Lead", "20+ multi-vendor", "Happy to compare notes", "AI learning product", "learning-product";BANNED_EXACTadds "teacher accepts". All existing entries are keptsrc/assets/css/footer.css: the Consulting link uses--muted-strong. It was 4.47:1 on the light footer, which was the only Lighthouse accessibility failure (see Notes)public/sitemap.xml: unchangedGrep counts (
src/+ai/index.html, case-insensitive), before → after:Verification
npm run lintexits 0npm run buildexits 0 (guard:check-consistency: 61 files clean)Local checks used
npm run previewwith headless Edge 155 over CDP, at 1366×768 and 390×844, in dark and light (localStorage.theme):top: 72px(header height); active chip follows Principles, Proof, Field notes, Contact<details>keyboard (Enter opens, Space closes, all 7)/ai#memoryon loadhashchangeto#toolsrole="img",aria-label= caption; accent node fill matches themerole="img", same label/roman-mazuryk-cv.pdfwithdownload; served asapplication/pdf, 105,702 bytes (the Oct 2026 CV)mailto:romazuryk@gmail.comcontent-visibilitysectionshidden="until-found"; search "token" shows the 1 match; "Show all 31 terms" shows alltextContent, all rows open)404 /_vercel/insights/script.js(Vercel Analytics, local preview only)Lighthouse 12 (local preview, Edge, light theme):
/ai, mobile (baseline)The mobile Perf target (≥ 95) and LCP target (< 2.5s) are not met locally. In every run, including the live baseline, about 2.4s of LCP is render delay: the SPA waits for
main.jsand the lazy page chunk before it paints text. FCP on the branch is about 1s faster than live (1.7 to 1.9s vs 2.9s). Mobile Perf also swings 86 to 93 between identical runs. Best Practices 96 is the Analytics 404, which only happens locally.How to test
/ai/#work)/ai#memorydirectly: the Memory row is open and in viewCore loop: home → Work →
/ai→ Download CV still works.Not tested:
:target-current, scroll-state queries and (on Safari)hidden="until-found"fall backQuality gates
aria-labelon the diagram and matrix region, focus-visible on summaries, chips and links,prefers-reduced-motionblock kept. Lighthouse A11y 100npx, not added to the project)ArrowUpRight,ChevronDown,FileDown,Search); the unused icon map was removedRedirects in:vercel.json/airoute andai/index.htmlentry unchangedDocs
CHANGELOG.mdupdated under[Unreleased]: no routing or architecture changedocs//CLAUDE.mdScreenshots
Captured locally at 1366px and 390px, in dark and light:
The GitHub CLI can't upload images, so Roman needs to drag them in from the session scratchpad, or use the Vercel preview.
Notes for review
Footer change. The brief says the footer stays identical. The only change is the Consulting link colour (
--muted→--muted-strong), to fix the AA failure feat: homepage v3, TPM / Implementation Lead #121 introduced on every page. It was the only Lighthouse accessibility failure.Agent-OS skills row (A2). "…reused across Claude apps…" became "…reused…", so no tool name sits next to the personal agent operating system. The proof card follows A2 exactly.
Magic Kick (A3). Exactly one line: the Harness row "An issue-to-PR workflow…". The ADR and AI-routes rows are removed, and Magic Kick is left out of the matrix (
matrix: false) so it doesn't appear a second time.Tool choice. Three per pillar, keeping names that describe themselves:
Harness, Skills, Tools and Cost don't have one of each verdict, because the remaining candidates needed explaining. Roman may want different picks.
UI labels not in the Copy section. Section-internal headings were moved into data unchanged ("Terms", "Best practices", "Pitfalls", "In my projects", "Tools: use, try, skip"). The glossary's "Show all 31 terms" button is new; without it, 23 terms would only be reachable through search or find-in-page.
"Glossary: 31 terms in one line" is built from
kbGlossary.length, so it stays accurate if terms change.Glossary pillar labels are plain text now, not links (they were small, under-44px links).
OG image alt changed from "AI Field Guide by Roman Mazuryk." to "How I implement AI, by Roman Mazuryk.". This wasn't in the Copy section, but the old name is retired.
Maintenance paragraph is kept as written. It still defines In use / In build / Pre-beta, but those labels now only appear as plain text in the mobile matrix cards.
🤖 Generated with Claude Code