Commit Graph

188 Commits

Author SHA1 Message Date
Nubenetes Bot
ce82aa07ec feat(v2/gen): add Kubernetes provider hub (sub-page index)
Audit of fragmentation found only two prefix clusters: aws (fixed in v2.9.34)
and kubernetes. Unlike AWS, kubernetes is well-classified — a rich parent (157
links) with substantial, distinct children (tools 144, networking 64, security
52, monitoring 24, storage 14, autoscaling 13, ...), not 1-3 link stubs. So
NOTHING is merged for kubernetes; this only adds a 'Deep-Dive Topic Pages' hub
to kubernetes.md indexing its 14 substantial sub-pages (Tools · Networking ·
Security · Monitoring · Storage · Autoscaling · Operators · Alternatives ·
Big Data · Tutorials · Backup & Migrations · Client Libraries · Local Dev ·
On-Premise) — purely additive navigation, no merging, no pruning.

Other small pages (pulumi, kustomize, registries, angular, ...) are legitimate
distinct topics, not fragments of a parent, so they are intentionally left
alone. Verified with --render-only; generator-only, CI republishes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 16:46:58 +02:00
Nubenetes Bot
c271c69b1f feat(v2/gen): de-fragment AWS pages — consolidate stubs + provider hub
The AWS landing page rendered with only ~3 links because AWS content was split
across ~20 granular pages (Azure/GCP use a single rich page each), and many AWS
sub-pages had just 1-5 links. Two generator changes fix this:

A. Provider hub: aws.md now renders a 'Deep-Dive Topic Pages' index linking to
   the substantial AWS sub-pages that remain (Serverless · Storage · Networking
   · Security · IaC · Backup · New Features), via a new self.subpage_hubs map.
   So the landing is a navigable index instead of a stub.

B. Stub consolidation: the near-empty / junk-drawer AWS sub-pages (<=7 links,
   plus 'miscellaneous') merge into aws.md via the existing merge_map mechanism
   (aws-miscellaneous, aws-databases, aws-devops, aws-containers, aws-monitoring,
   aws-architecture, aws-tools-scripts, aws-messaging, aws-data, aws-training,
   aws-pricing). Those slugs are also removed from self.dimensions so the full
   pipeline prunes the orphaned pages and auto-syncs the nav.

Verified locally with --render-only: aws.md goes from 3 to 44 links plus the
7-child hub block; V1 (docs/) is untouched by design — it stays the exhaustive
archive and is still read as the merge source. No regenerated v2-docs or
inventory committed (CI republishes per the generator→republish pattern).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 16:41:50 +02:00
Nubenetes Bot
40275974c0 feat(v2): collapsible nested left nav + 3 home section headings
Two fixes following the tabs removal:

1) Nav was a FLAT list of 18 section labels with no expand/indent, because
   navigation.sections rendered them as non-collapsible group labels and
   navigation.prune stripped inactive children. Disabled both → the left
   sidebar is now a proper COLLAPSIBLE, nested, indented tree (14 toggles,
   chevrons, collapsed by default). No size penalty (88213 vs 88516 bytes).

2) Home had a single H2, so its right-hand 'On this page' TOC was empty. Added
   '## Explore the Ecosystem' (badge cards) and '## Trending Now' (digest) to
   join the existing '## The Cloud Native Universe We Track' — the home's right
   TOC now lists three real sections.

Net effect: both side columns are now useful on every page, incl. the home —
left = full collapsible directory, right = per-page section map.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 14:33:27 +02:00
Nubenetes Bot
c377b4e4d9 feat(v2/seo): richer per-page descriptions from top resources + creation dates
- Enrich each page's meta description with its top-ranked resource names
  (long-tail keywords) instead of a pure template — e.g. 'Top Kubernetes
  resources for 2026, AI-ranked: Helm, kube-prometheus and more — curated Cloud
  Native tools, guides and references.' URL/path-like and emoji-laden titles are
  filtered out; pages whose top links are all URL-like fall back to the clean
  template. Capped at ~160 chars on a word boundary.
- Enable git-revision creation dates (enable_creation_date: true) so every page
  footer shows both 'Created' and 'Last update' — an age/freshness signal.

Verified locally: descriptions are clean, tool-named, 126-151 chars; the footer
renders both dates. Pages pick up the new front-matter on the next Publisher run.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 13:39:44 +02:00
Nubenetes Bot
6fb3808850 feat(v2/seo): unique per-page meta descriptions + robots.txt
Every V2 page previously fell back to the identical global site_description
(duplicate meta descriptions = SEO penalty across ~140 pages). The generator now
emits a unique description: front-matter per page — derived from the page title
and its strategic dimension — which Material renders as <meta name=description>
and og:description. Topic Map and Methodology get tailored descriptions too.

Also add v2-docs/robots.txt (deployed at the site root) allowing full crawl and
referencing both the V2 (root) and V1 (/v1/) sitemaps.

Verified locally: each built page now carries a distinct meta description, and
robots.txt lands in the build output. The ~140 generated pages pick up their
front-matter on the next V2 Publisher run.

Note: the 12 redirect-stub pages (chef->ansible, react->javascript, ...) were
left as-is — they already 0s meta-refresh redirect with canonical pointing at
the target, which is better SEO than noindex (and the redirects plugin would
overwrite any front-matter anyway).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 13:21:57 +02:00
Nubenetes Bot
8e065c5406 feat(v2/tags): grouped, compact Technical Tags Index TOC + unique anchors
The Technical Tags Index TOC was a flat 80-entry numbered list that buried the
8 meaningful maturity tags under a long tail of one-resource 'X Content'
language tags, with colliding anchors (C / C# / C++ all -> #c-content) and a
'1 resources' grammar bug.

- Group the TOC: 'Maturity and Quality' as a clean numbered list; 'Technical
  Domains' and 'Language and Format' as compact, count-sorted inline pill rows.
- Precompute unique, explicit heading anchors ({#slug}) shared by the TOC and
  the section headers (c-sharp-content, c-plus-plus-content, dedup counter),
  fixing the collisions.
- Correct singular/plural ('1 resource').
- Filter non-language language values (En, Not Applicable, Multi-Language,
  Polyglot, ...) so they no longer create meaningless tag buckets.

Validated: 0 markdownlint errors on the regenerated tags.md.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 13:05:48 +02:00
Nubenetes Bot
ae0af172dc fix(v2): Topic Map dimensions must be h2 not h3 (MD001 lint failure)
The Topic Map page H1 is 'Topic Map', so dimension headings jumped h1->h3
and tripped markdownlint MD001/heading-increment, failing 07.2 Markdown
Linter on develop and master after v2.9.16. Emit dimensions as h2 in the
generator, the committed page, and update the CSS selector
(.topic-map-dim h2). Verified 0 errors with the CI markdownlint config.
Bumped v2_elite.css?v=2.9.17.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 12:03:02 +02:00
Nubenetes Bot
c41028e023 feat(v2): restructure home — Topic Map + Methodology pages, mosaic & a11y polish
Declutter the V2 landing page into a curated entry point and move the
full category directory and reference legends to dedicated pages.

Home (index):
- Move "Trending Now / Digest" above the signature YouTube mosaic (fix
  inverted altitude: fresh, dynamic content first).
- Replace the ~130-link "Strategic Dimensions" dump with a "Topic Map"
  badge card + a slim reference footer (Topic Map · Methodology · Videos).
- Frame the mosaic with a "The Cloud Native Universe We Track" heading.

New generated pages:
- topic-map.md — full category directory by dimension in a responsive
  multi-column CSS grid, with per-category resource counts.
- methodology.md — Maturity Taxonomy + Technical Impact legend tables
  (moved out of the home).

Mosaic (kept as brand signature, reinforced):
- Surface the per-group category labels that were hidden in title=.
- loading="lazy" on the ~150 channel logos (LCP/perf win).

about.md videos:
- youtube-nocookie.com + loading="lazy" + responsive aspect-ratio wrapper.

Config & cleanup:
- Disable navigation.expand (169-entry nav stayed fully open); the Topic
  Map page now serves as the full directory.
- Branded 404 page with clear ways back (Home / Topic Map / V1 Archive).
- Hoist repeated inline styles (hero badge row) into CSS classes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 11:52:21 +02:00
Nubenetes Bot
2e281e98ea feat(v2): category-first digest layout for a navigable right-hand TOC
The Tech & Cloud and Industry & Geo digest pages rendered period-first (three
time-window tabs, each nesting every category as bold text), so they had zero
real headings and an empty "On this page" TOC. Inverted _generate_digest_pages()
to category-first: each category is a real ## heading with the 3 time-windows as
content tabs inside it. The right TOC now lists all 22 tech categories / 4 geo
regions once each, headings sit at column 0 (no MD023 workaround), tabs preserved.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 19:50:23 +02:00
Nubenetes Bot
19b7b44e20 feat(v2): restore in-page search/tag filter & drop redundant Markdown TOC
Fix: the per-page resource search box with maturity tag-pills stopped
appearing after navigation.instant was enabled (DOMContentLoaded fires only
on first SPA load). Reworked v2_filter.js to init via Material's document$
observable with a DOMContentLoaded fallback, guard double-injection, bind the
clickable-tag delegation once, and add a no-results state. Cache-bust ?v=2.9.12.

Change: removed the duplicated Markdown "## Table of Contents" from all 156 V2
content pages and from v2_optimizer.py — it forced hundreds of links of scroll
on large pages. Replaced by Material's native sticky "On this page" TOC
(removed toc.integrate, added toc.follow). tags.md keeps its TOC (it is an index).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 18:49:15 +02:00
Nubenetes Bot
48e8f71b6d fix: populate Industry & Geo Intelligence Digest (España→Spain rename)
_get_entry_geo() called entry.get("url","") before the url key was
injected into the dict, so TLD inference always received an empty
string and all 304 geo-eligible entries were silently dropped.

Fix: add url= parameter to _get_entry_geo and pass the dict key from
generate_digest. Also renames España→Spain in DIGEST_CATEGORIES,
GEO_CATEGORIES, TLD map, and v2_optimizer geo_cats list.

news_digest.json now includes Americas/Europe/Spain/Asia-Pacific data
(star-based fallback; Gemini will re-rank on next Monday CI run).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 16:24:18 +02:00
Nubenetes Bot
b470c4acdb fix: escape pipe chars in digest table link titles
Titles containing ' | ' (e.g. "Neo, Now in the Terminal | Pulumi Blog")
broke the Markdown table renderer because the unescaped pipe was parsed
as a column separator.

Root cause: v2_optimizer.py escaped pipes in the 'why' column but not
in the link title — one-line fix adds `.replace("|", r"\|")` to `t`.

Also corrects the 4 already-rendered broken entries in tech-digest.md.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 16:04:21 +02:00
Nubenetes Bot
e773676a70 feat: incremental digest engine — reuse Gemini results when inventory unchanged
Each (category × period) cell in news_digest.json now carries a hash of its
entry pool (sorted URLs). Before calling Gemini, the engine checks:
  1. Hash matches stored hash (same inventory entries)
  2. Last analyzed within MAX_STALENESS_DAYS=30

Both conditions true → reuse existing ranked list, 0 Gemini API calls.
Only cells where the inventory actually changed (new/removed entries) trigger
a fresh Gemini ranking.

Expected savings: re-runs with code-only changes → 0 API calls (down from 66).
New ingestion batch → only affected categories call Gemini (5-10 of 26 typical).
Stale refresh (>30d) → full refresh at most once per month.

Also:
- Remove day-level GitHub Actions cache for digest (redundant: news_digest.json
  is committed to the repo and is the persistent store for _meta)
- Always run news_digest.py in both 04.1 and 09 workflows (it's cheap when 0
  Gemini calls are needed)
- Trending badge now reads _meta.last_updated (actual analysis date) instead of
  file mtime (which changes on every render/commit)
- Remove invalid extra_head key from v2-mkdocs.yml (left over from rollback)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 14:09:11 +02:00
Nubenetes Bot
1dd0dab308 fix: 3 critical publisher/deploy safety issues
1. Skip page deletion and nav sync in --render-only mode
   The CI publisher always uses --render-only but the pruning phase was
   deleting pages not regenerated in a given pass (e.g. low-hit pages),
   breaking nav references and corrupting the MkDocs build.

2. Protect dimension pages from deletion in full mode
   Even in a full (non-render-only) run, pages defined in self.dimensions
   are never deleted. Truly orphaned pages (not in dimensions AND not
   generated) are the only ones pruned.

3. _sync_enterprise_navigation returns True/False
   Deletion is gated on nav sync success. If nav sync fails, deletion
   is skipped to prevent inconsistency (deleted files + stale nav).
   Also fixes the fragile re.sub(r'nav:.*') regex by using string
   indexing instead, preventing accidental truncation of extra_css etc.

4. Deploy workflow V2 sanity check
   If V2 build produces fewer than 50 HTML pages or no index.html,
   deploy falls back to V1-only instead of overwriting V1 with a
   broken V2 build.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 13:29:10 +02:00
Nubenetes Bot
f4208bca4d fix: comprehensive None-stars guard across all v2_optimizer comparisons
_render_single_link (line 872) crashed with TypeError: '>=' not supported
between NoneType and int. Replaced ALL remaining .get('stars', 0) patterns
with .get('stars') or 0 throughout v2_optimizer.py to prevent further
crashes from null stars values in inventory.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 12:45:20 +02:00
Nubenetes Bot
58601de338 fix: guard all negated .get('stars') sort keys against None values
Three sites in v2_optimizer where `-x.get("stars", default)` crashes
with TypeError when stars field is present but null in inventory.
Fixed with `-(x.get("stars") or default)` pattern consistently.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 12:12:39 +02:00
Nubenetes Bot
9d3321d0f0 fix: guard against None resource_type in _calculate_tags
item.get("resource_type", "Reference") returns None when the field
exists with a null value in the inventory. Use `or "Reference"` instead.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 11:42:58 +02:00
Nubenetes Bot
88f891fd4e feat: 5 improvements — geo inference, last-updated badge, search boost, RSS feed, weekly cron
1. geo_region inference: _infer_geo_from_url() infers Americas/Europe/España/Asia-Pacific
   from URL TLD (.es .de .fr .uk .jp .cn etc.) as fallback when geo_region field is empty.
   Industry digest now shows real content instead of empty categories.

2. Last-updated badge: trending section header now shows "Updated Jun 19, 2026" pill
   derived from news_digest.json mtime — gives readers confidence in freshness.

3. Search boost: tech-digest and industry-digest pages now have search.boost: 2
   frontmatter so they rank higher in MkDocs Material site search.

4. RSS feed (src/rss_generator.py): generates v2-docs/feed.xml with top-20 curated
   picks from 3-month digest. Runs after news_digest in publisher. Autodiscovery
   <link rel="alternate"> added to v2-mkdocs.yml extra_head.

5. Weekly cron (09.weekly_digest.yml): runs every Monday 06:00 UTC, generates digest
   with Gemini, renders digest pages, commits, then triggers publisher.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 11:11:02 +02:00
Nubenetes Bot
16ad26f427 refactor: remove digest-preview list from index, keep trending cards only
The 5-item link list was redundant with the 6 trending cards block
that the publisher generates. Cleaner UX: hero card (amber) → trending
cards → /tech-digest/ for full 22-category view.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 11:05:41 +02:00
Nubenetes Bot
c8ca878f66 feat: add Intelligence Digest card to index hero and mini-preview block
- New hero card (amber color) between AI & MCP Agents and Agentic Video
  Hub, linking to /tech-digest/ with emoji icon and subtitle
- Dynamic digest-preview block above Agentic Pulse: shows top 1 link
  from 5 priority categories (Kubernetes, AI, Security, IaC, Observability)
  pulled from data/news_digest.json on each optimizer run
- New CSS: hero-badge-card--amber, hero-badge-icon, digest-preview
  component with category chips and hover states
- v2_optimizer now generates both the card and preview automatically

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 10:58:52 +02:00
Nubenetes Bot
b321169459 fix: NoneType comparison crashes in v2_optimizer, dedup, and news_digest
Inventory entries can have stars=null or discovered_at=null. Replace
.get("stars", 0) with .get("stars") or 0 in all three modules so that
None values are safely coerced to 0/"" before numeric/string comparison.

Fixes TypeError crashes in:
- v2_optimizer.py:632 _calculate_tags
- dedup.py:74,108 title dedup and entry scoring
- news_digest.py:322 category pool sorting

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 10:44:00 +02:00
Nubenetes Bot
6f34ac8569 fix: replace indented ## headings with bold text in digest pages (MD023 lint fix)
- Change `    ## Category` to `    **Category**` inside MkDocs Material
  tabs to avoid MD023 linter errors (headings must start at col 0)
- Sanitize pipe characters in "why" text to prevent broken markdown tables
- Regenerated tech-digest.md (1328 lines, 3 tabs: 333/443/552 lines)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 09:50:53 +02:00
Nubenetes Bot
05b66d006f feat: add company/geo_region extraction to Gemini prompts, add enrichment/dedup to cron, fix nav sync for digest pages
- Update curator Gemini prompt with Phase 5: Company & Geo Classification
  to extract company name and geo_region (americas/europe/spain/asia_pacific)
  for industry digest categories
- Store company and geo_region from AI response in eval_data
- Add Intelligence Digest nav entries to _sync_enterprise_navigation so
  digest pages persist across nav rebuilds
- Add dedup scan and enrichment pipeline steps to monthly cron workflow
  (01.1.agentic_cron.yml) in addition to publish workflow

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 09:04:28 +02:00
Nubenetes Bot
782dc1bd06 feat: add AI re-evaluation staleness detection, cross-dimension See Also, and last_ai_eval tracking
- Add last_ai_eval timestamp to eval_data in both fast-track and grounded-track
  evaluation paths, plus SQL schema and curator
- Entries enriched >6 months ago are automatically flagged for re-evaluation
  instead of being skipped (stale content detection)
- Enhance "See Also" links with cross-dimension references based on shared
  tags between pages, in addition to same-dimension related links
- Add _collect_tags_from_tree() helper for recursive tag extraction

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 00:45:57 +02:00
Nubenetes Bot
1149a9c8f7 feat: add announcement bar, tags/RSS/minify plugins, markdown extensions, and fix comparison table threshold
- Add announcement bar with digest promo via template override
- Enable tags plugin (native clickable tag navigation)
- Add RSS plugin for digest feed subscription
- Enable minify plugin for production HTML optimization
- Add markdown extensions: highlight, inlinehilite, smartsymbols, caret, tilde, tables, footnotes, abbr, def_list
- Add mkdocs-rss-plugin to requirements.txt
- Fix comparison table threshold mismatch (config: 8, code: 5 → aligned to 8)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 00:42:17 +02:00
Nubenetes Bot
4e87c248fd feat: implement AI-powered news digest engine, MkDocs UX overhaul, pipeline hardening, and stub page merges
- Add 26-category news digest engine (src/news_digest.py) with Gemini AI ranking
  for 3/6/12 month temporal panels across tech, cloud, and geo categories
- Add discovered_at, company, geo_region fields to inventory schema with backfill
  script populating 18K+ existing entries
- Fix critical v2-mkdocs.yml bug: plugins were nested under theme (silently disabled)
- Add MkDocs Material features: instant nav, breadcrumbs, footer, announce bar
- Add trending cards CSS grid and replace Agentic Pulse with dynamic Trending Now
- Generate tech-digest.md and industry-digest.md with tabbed 3/6/12 month views
- Merge 12 stub pages (<40 lines each) into parent categories with redirects
- Replace 50 bare except:pass patterns with contextual logging across all pipeline files
- Expand autonomous discovery from 6 to 14 GitHub search queries
- Add stale health re-check for online entries older than 30 days
- Track addition_method by source type (rss, twitter, github_trending)
- Add digest generation step to CI publish workflow

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 00:38:56 +02:00
Nubenetes Bot
138b63c69f fix(ci): fix README.md TOC and safety check logic, and guard against NoneType titles in v2_optimizer 2026-06-18 17:42:04 +02:00
Nubenetes Bot
1cd243ee58 feat: implement SQLite dual-save engine, pre-commit schema linting, debate consensus caching, and reputation registry 2026-06-18 17:32:08 +02:00
Nubenetes Bot
67092bc4d2 feat: implement recommendations #2, #3, and #5 for curation and tags performance 2026-06-18 16:52:16 +02:00
Nubenetes Bot
617c700018 feat: integrate advanced AI developer tools (Cursor, Antigravity, Claude Code, Copilot) into V1/V2 and fix parsing regex 2026-06-18 15:19:19 +02:00
Nubenetes Bot
ed79499373 feat(about): improve V2 about page manifest context and add 12 automation tools 2026-06-18 11:47:02 +02:00
Nubenetes Bot
ab72d9c411 feat: configure V2 to serve at root and V1 at /v1/ 2026-06-18 11:26:10 +02:00
Nubenetes Bot
378fbc948d feat: improve V2 index Maturity Taxonomy tags styling and optimize Technical Tags index page for usability and performance 2026-06-18 11:02:49 +02:00
Nubenetes Bot
d17b812860 feat: improve V2 index Maturity Taxonomy UI and optimize Technical Tags index page for speed and usability 2026-06-18 10:51:56 +02:00
Nubenetes Bot
cf87b9cc83 fix: enforce safe merge updates in inventory to prevent metadata overwrite 2026-06-18 10:39:51 +02:00
Nubenetes Bot
44e607a83a feat: implement offline mock debate simulator and clickable tag filters sync 2026-06-18 03:17:22 +02:00
Nubenetes Bot
235d9d721b feat: implement Phase 3 tagging system, clickable tag filtering, custom color badges, and tags.md index generation 2026-06-18 02:36:51 +02:00
Nubenetes Bot
8547f8ce56 docs: add multi-agent debate explanation and mermaid diagram to README 2026-06-18 02:00:47 +02:00
Nubenetes Bot
16ddf968f8 feat: V2 premium enhancements & global format 2026-06-18 01:47:42 +02:00
Nubenetes Bot
ff9087e3a2 feat(curation): achieve 100% coverage for AI enrichment and GitHub metadata metrics without Gemini API 2026-06-18 00:49:32 +02:00
Nubenetes Bot
9001562723 feat(v2): feature Cowboy Bebop and Jimmy Sax videos side-by-side in About page 2026-06-14 15:43:37 +02:00
Nubenetes Bot
97ada94671 feat(v2): embed Jimmy Sax 'Time' in About page as inspirational background 2026-06-14 15:24:29 +02:00
Nubenetes Bot
a7c98385b7 feat(v2): further enhance About page with Architectural North Star and deeper nesting 2026-06-14 14:42:50 +02:00
Nubenetes Bot
08988fa7c0 feat(v2): complete global cleanup of broken links and expand About page with high-value technical leadership references 2026-06-14 14:11:01 +02:00
Nubenetes Bot
ae37de8243 fix(v2): add mandatory blank lines around tables in About page for markdownlint 2026-06-14 13:38:08 +02:00
Nubenetes Bot
fd95c1b48e fix(v2): correct Vadim Kravcenko article URL in About page 2026-06-14 13:28:57 +02:00
Nubenetes Bot
ab0520e5ac fix(v2): remove broken link and replace with high-value PDD reference in About page 2026-06-14 13:27:52 +02:00
Nubenetes Bot
23444477d5 feat(v2): expand About page with Strategic Standards and Meritocracy references 2026-06-14 13:17:54 +02:00
Nubenetes Bot
8212f0d9a6 feat(v2): set dark mode as default and improve About page hierarchy 2026-06-14 13:13:06 +02:00
Nubenetes Bot
cbae31e598 feat(v2): implement 'Engineering Manifest' for About page and elevate resource visibility 2026-06-14 13:03:58 +02:00