{
  "version": "1.0",
  "schema": "https://entitymap.org/spec/v1.0",
  "publisher": {
    "name": "Chudi Nnorukam",
    "url": "https://chudi.dev",
    "sameAs": [
      "https://x.com/chudinnorukam",
      "https://www.linkedin.com/in/chudi-nnorukam",
      "https://contra.com/chudi_nnorukam_r81ryz4s",
      "https://www.instagram.com/herochiii/",
      "https://medium.com/@nnorukamchudi",
      "https://chudinnorukam.substack.com",
      "https://dev.to/chudi_nnorukam",
      "https://hashnode.com/@chudinnorukam",
      "https://www.freecodecamp.org/news/author/chudinnorukam/",
      "https://hackernoon.com/u/chudinnorukam",
      "https://www.youtube.com/@ContextWindow26",
      "https://citability.dev",
      "https://www.reddit.com/user/Unlikely_Ad_8060",
      "https://www.upwork.com/freelancers/~019ba44c5aa989b359"
    ]
  },
  "generated": "2026-08-20T00:00:00Z",
  "entities": [
    {
      "entityId": "e_001",
      "@type": "Person",
      "name": "Chudi Nnorukam",
      "description": "Chudi Nnorukam builds chudi.dev as a public working model of AI-visible web architecture, and is the creator of AI Visibility Readiness (AVR), the framework that measures why AI systems cite a site. San Francisco Bay Area.",
      "sameAs": [
        "https://x.com/chudinnorukam",
        "https://www.linkedin.com/in/chudi-nnorukam",
        "https://contra.com/chudi_nnorukam_r81ryz4s",
        "https://www.instagram.com/herochiii/",
        "https://medium.com/@nnorukamchudi",
        "https://chudinnorukam.substack.com",
        "https://dev.to/chudi_nnorukam",
        "https://hashnode.com/@chudinnorukam",
        "https://www.freecodecamp.org/news/author/chudinnorukam/",
        "https://hackernoon.com/u/chudinnorukam",
        "https://www.youtube.com/@ContextWindow26",
        "https://citability.dev",
        "https://www.reddit.com/user/Unlikely_Ad_8060",
        "https://www.upwork.com/freelancers/~019ba44c5aa989b359"
      ],
      "relations": [
        {
          "predicate": "created",
          "targetId": "e_002",
          "targetName": "AI Harness Engineering"
        },
        {
          "predicate": "created",
          "targetId": "e_003",
          "targetName": "CODEX-OS"
        },
        {
          "predicate": "founded",
          "targetId": "e_005",
          "targetName": "citability.dev"
        },
        {
          "predicate": "created",
          "targetId": "e_006",
          "targetName": "AI Visibility Readiness (AVR) Framework"
        },
        {
          "predicate": "authors",
          "targetId": "e_007",
          "targetName": "AEO Explained"
        },
        {
          "predicate": "authors",
          "targetId": "e_008",
          "targetName": "ADHD Productivity System"
        },
        {
          "predicate": "authors",
          "targetId": "e_009",
          "targetName": "AI Citability Audit"
        },
        {
          "predicate": "authored",
          "targetId": "e_010",
          "targetName": "How to Measure Your AI Citation Rate (freeCodeCamp)"
        },
        {
          "predicate": "authored",
          "targetId": "e_011",
          "targetName": "A Developer's Guide to WebMCP (freeCodeCamp)"
        },
        {
          "predicate": "authors",
          "targetId": "e_014",
          "targetName": "I Added WebMCP to SvelteKit (chudi.dev)"
        },
        {
          "predicate": "authors",
          "targetId": "e_015",
          "targetName": "Claude Context Management: 3-File System (chudi.dev)"
        },
        {
          "predicate": "authored",
          "targetId": "e_025",
          "targetName": "How to Run an AI Extractability Audit (freeCodeCamp)"
        },
        {
          "predicate": "authored",
          "targetId": "e_026",
          "targetName": "How to Tell if Search Console Impressions Are Human or Machine (freeCodeCamp)"
        },
        {
          "predicate": "authors",
          "targetId": "e_016",
          "targetName": "Why AI Isn't Citing Your Website (chudi.dev)"
        },
        {
          "predicate": "authors",
          "targetId": "e_027",
          "targetName": "Search Console Generative AI Report (chudi.dev)"
        }
      ],
      "knowsAbout": [
        {
          "@type": "DefinedTerm",
          "name": "WebMCP (Model Context Protocol for Browsers)",
          "description": "The W3C Community Group Draft for browser-native tool registration via navigator.modelContext, enabling AI agents to call website tools directly. Chudi Nnorukam implemented WebMCP on chudi.dev and citability.dev and authored the first SvelteKit implementation guide.",
          "url": "https://chudi.dev/blog/webmcp-sveltekit-implementation"
        },
        {
          "@type": "DefinedTerm",
          "name": "Claude Code Context Management",
          "description": "The practice of persisting task state and context across Claude Code sessions and through context compaction using a three-file dev docs system (plan.md, context.md, tasks.md) so Claude resumes exactly where it left off.",
          "url": "https://chudi.dev/blog/claude-context-management-dev-docs"
        },
        {
          "@type": "DefinedTerm",
          "name": "AI Visibility Readiness (AVR)",
          "description": "A tiered, transparent audit methodology for measuring website readiness for AI-powered search. Created and maintained by Chudi Nnorukam. Every check is labelled VERIFIABLE or BEST-EFFORT; verdict bands are AI-READY, FOUNDATION-READY, or NOT-READY.",
          "url": "https://chudi.dev/framework"
        },
        {
          "@type": "DefinedTerm",
          "name": "Answer Engine Optimization (AEO)",
          "description": "The practice of structuring content so AI answer engines (Perplexity, ChatGPT, Google AI Overviews) can extract, trust, and cite it. Distinct from classic Google SEO: AI engines cite pages by extractability, not just link-based popularity.",
          "url": "https://chudi.dev/blog/aeo-answer-engine-optimization-explained"
        },
        {
          "@type": "DefinedTerm",
          "name": "Generative Engine Optimization (GEO)",
          "description": "Structuring web content to influence how generative AI systems represent and cite a brand or site in open-ended answers. Covers entity-graph reinforcement, topical authority signaling, and structured data for AI retrieval.",
          "url": "https://chudi.dev/blog/aeo-answer-engine-optimization-explained"
        },
        {
          "@type": "DefinedTerm",
          "name": "Claude Code Hooks and Skills Architecture",
          "description": "Building a self-correcting Claude Code operating system via a hooks enforcement layer that fires automatically at lifecycle events, named skills that define reusable capabilities, and a fleet of specialist agents each grounded via the /ascend forging protocol.",
          "url": "https://chudi.dev/blog/claude-code-operating-system-case-study"
        },
        {
          "@type": "DefinedTerm",
          "name": "ADHD Developer Productivity",
          "description": "Energy-aware productivity systems designed for ADHD and neurodivergent software engineers. Replaces traditional GTD with hyperfocus scheduling, single-surface task visibility, and AI processing to reduce cognitive overhead.",
          "url": "https://chudi.dev/blog/adhd-engineer-productivity-system"
        }
      ],
      "externalMentions": [
        {
          "title": "freeCodeCamp X post: WebMCP guide (@chudinnorukam)",
          "url": "https://x.com/freeCodeCamp/status/2060693195437060203",
          "publisher": "freeCodeCamp",
          "date": "2026-05-30",
          "views": 9881
        },
        {
          "title": "freeCodeCamp Facebook post: WebMCP guide",
          "url": "https://www.facebook.com/freecodecamp/posts/ai-agents-can-read-websites-but-webmcp-can-let-them-use-website-tools-directly-i/",
          "publisher": "freeCodeCamp",
          "date": "2026-05-31"
        },
        {
          "title": "freeCodeCamp Facebook post: AI citation rate guide",
          "url": "https://www.facebook.com/freecodecamp/posts/ai-search-visibility-isnt-just-about-rankings-citations-also-really-matter-in-th/",
          "publisher": "freeCodeCamp",
          "date": "2026-05-08"
        }
      ],
      "hasChunks": [
        {
          "chunkId": "c_001",
          "text": "I build web systems that AI models can read and cite. The skill underneath is attention: I find what an AI assistant sees, or misses, about a site, then close the gap so the right pages get recommended. 5+ products shipped solo, concept to production in days. chudi.dev is the public, measured proof, and the home of AI Visibility Readiness (AVR), the framework I built to measure why AI cites you.",
          "sourceUrl": "https://chudi.dev/about",
          "pageTitle": "About — Chudi Nnorukam",
          "publisher": "Chudi Nnorukam"
        }
      ]
    },
    {
      "entityId": "e_002",
      "@type": "DefinedTerm",
      "name": "AI Harness Engineering",
      "description": "The practice of building and evolving an AI agent infrastructure — skills, decision ledgers, knowledge graphs — so that the harness itself is the professional output, not merely a means to other output.",
      "sameAs": "https://chudi.dev/blog/cross-agent-decision-ledger",
      "relations": [
        {
          "predicate": "partOf",
          "targetId": "e_003",
          "targetName": "CODEX-OS"
        },
        {
          "predicate": "builtBy",
          "targetId": "e_001",
          "targetName": "Chudi Nnorukam"
        }
      ],
      "hasChunks": [
        {
          "chunkId": "c_002",
          "text": "Both implications are codified in the harness-evolution framework I publish at chudi.dev/framework. If you are building a multi-agent substrate, that framework is the recipe.",
          "sourceUrl": "https://chudi.dev/blog/cross-agent-decision-ledger",
          "pageTitle": "4 Decisions in 7 Hours: When My AI Agents Aligned",
          "publisher": "Chudi Nnorukam"
        }
      ]
    },
    {
      "entityId": "e_003",
      "@type": "Concept",
      "name": "CODEX-OS",
      "description": "A personal knowledge-graph and agent-harness operating system built by Chudi Nnorukam. CODEX-OS stores decisions, entities, and principles in a Convex-backed graph, enabling cross-agent memory and semantic search across Claude Code sessions.",
      "sameAs": "https://chudi.dev/blog/cross-agent-decision-ledger",
      "relations": [
        {
          "predicate": "ownedBy",
          "targetId": "e_001",
          "targetName": "Chudi Nnorukam"
        },
        {
          "predicate": "contains",
          "targetId": "e_002",
          "targetName": "AI Harness Engineering"
        }
      ],
      "hasChunks": [
        {
          "chunkId": "c_003",
          "text": "I run two AI agents on the same work. Bud, a Convex-backed automation agent, handles my LinkedIn scheduling, blog calendar, and overnight browser jobs. Claude Code handles my dev work, content drafting, and codex maintenance. Until this date they had never written to the same place; their decision-histories sat in separate stores, invisible to each other.",
          "sourceUrl": "https://chudi.dev/blog/cross-agent-decision-ledger",
          "pageTitle": "4 Decisions in 7 Hours: When My AI Agents Aligned",
          "publisher": "Chudi Nnorukam"
        }
      ]
    },
    {
      "entityId": "e_004",
      "@type": "Concept",
      "name": "AI Building",
      "description": "Content pillar on chudi.dev covering how to build AI-visible web architecture, answer engine optimization (AEO), generative engine optimization (GEO), and AI citation infrastructure.",
      "sameAs": "https://chudi.dev/topics/ai-visibility-engineering",
      "relations": [
        {
          "predicate": "hostedBy",
          "targetId": "e_001",
          "targetName": "Chudi Nnorukam"
        }
      ],
      "hasChunks": [
        {
          "chunkId": "c_004",
          "text": "AEO (Answer Engine Optimization) is optimizing your content to be found and cited by AI search engines like Perplexity, Claude, ChatGPT, and Google's AI Overview. Not traditional Google Search. The core insight: Google ranks pages by popularity; AI engines cite pages by extractability. Those are different problems requiring different solutions.",
          "sourceUrl": "https://chudi.dev/blog/aeo-answer-engine-optimization-explained",
          "pageTitle": "Answer Engine Optimization: 6 Factors That Decide If AI Cites You",
          "publisher": "Chudi Nnorukam"
        }
      ]
    },
    {
      "entityId": "e_005",
      "@type": "Organization",
      "name": "citability.dev",
      "description": "AI Visibility Auditing service built on the AI Visibility Readiness (AVR) Framework. Scores any URL on infrastructure, citations, and visibility across ChatGPT, Perplexity, and Claude.",
      "sameAs": [
        "https://citability.dev",
        "https://www.youtube.com/channel/UCrUqC_sU-FnFfryAxNUIQoA",
        "https://www.instagram.com/citabilitydev/"
      ],
      "relations": [
        {
          "predicate": "foundedBy",
          "targetId": "e_001",
          "targetName": "Chudi Nnorukam"
        },
        {
          "predicate": "implements",
          "targetId": "e_006",
          "targetName": "AI Visibility Readiness (AVR) Framework"
        }
      ],
      "hasChunks": [
        {
          "chunkId": "c_005",
          "text": "citability.dev (DA under 10) achieved 15% citation rate, outperforming Ahrefs at 5%. The three strongest predictors were answer-first content, dateModified schema, and original data.",
          "sourceUrl": "https://chudi.dev/blog/ai-citability-audit-what-predicts-citations",
          "pageTitle": "I Audited 7 Websites for AI Citability. Here Is What Actually Predicts Citations.",
          "publisher": "Chudi Nnorukam"
        }
      ]
    },
    {
      "entityId": "e_006",
      "@type": "DefinedTerm",
      "name": "AI Visibility Readiness (AVR) Framework",
      "description": "A transparent, tiered audit methodology for measuring website readiness for AI-powered search. Version 1.1.0. Every check labelled VERIFIABLE or BEST-EFFORT, with a 3-band verdict: AI-READY, FOUNDATION-READY, or NOT-READY.",
      "sameAs": "https://chudi.dev/framework",
      "relations": [
        {
          "predicate": "createdBy",
          "targetId": "e_001",
          "targetName": "Chudi Nnorukam"
        },
        {
          "predicate": "implementedBy",
          "targetId": "e_005",
          "targetName": "citability.dev"
        }
      ],
      "hasChunks": [
        {
          "chunkId": "c_006",
          "text": "I used the AI Visibility Readiness (AVR) framework to run infrastructure audits on 7 websites. Each site was checked for 10 signals that AI crawlers use to discover and parse content: robots.txt, sitemap.xml, answer-first content, content freshness, structured data (JSON-LD), meta descriptions, canonical URLs, HTTPS, heading hierarchy, and social sharing readiness.",
          "sourceUrl": "https://chudi.dev/blog/ai-citability-audit-what-predicts-citations",
          "pageTitle": "I Audited 7 Websites for AI Citability. Here Is What Actually Predicts Citations.",
          "publisher": "Chudi Nnorukam"
        }
      ]
    },
    {
      "entityId": "e_007",
      "@type": "Article",
      "name": "Answer Engine Optimization: 6 Factors That Decide If AI Cites You",
      "description": "AEO (Answer Engine Optimization) determines which sites AI answer engines cite. The 6 factors driving citations in Perplexity, ChatGPT, and Google AI Overview.",
      "sameAs": "https://chudi.dev/blog/aeo-answer-engine-optimization-explained",
      "relations": [
        {
          "predicate": "authoredBy",
          "targetId": "e_001",
          "targetName": "Chudi Nnorukam"
        },
        {
          "predicate": "pillarOf",
          "targetId": "e_004",
          "targetName": "AI Building"
        }
      ],
      "hasChunks": [
        {
          "chunkId": "c_007",
          "text": "Perplexity cites roughly 6.6 sources per answer; ChatGPT cites only 2.6. Only 12% of URLs cited by AI engines appear in Google's top 10. These numbers mean your Google ranking strategy and your AI citation strategy are nearly independent problems that require separate solutions.",
          "sourceUrl": "https://chudi.dev/blog/aeo-answer-engine-optimization-explained",
          "pageTitle": "Answer Engine Optimization: 6 Factors That Decide If AI Cites You",
          "publisher": "Chudi Nnorukam"
        }
      ]
    },
    {
      "entityId": "e_008",
      "@type": "Article",
      "name": "ADHD Productivity: The System I Built After GTD Failed Me",
      "description": "Traditional productivity systems fail for ADHD brains. The energy-aware productivity system built instead: hyperfocus scheduling, AI processing, and single-surface design.",
      "sameAs": "https://chudi.dev/blog/adhd-engineer-productivity-system",
      "relations": [
        {
          "predicate": "authoredBy",
          "targetId": "e_001",
          "targetName": "Chudi Nnorukam"
        }
      ],
      "hasChunks": [
        {
          "chunkId": "c_008",
          "text": "After enough failed experiments, I started noticing what did work. If I can't see everything in one place, it doesn't exist. Nested folders and pages are where my tasks go to die. The best day I ever had with a task manager was when I kept everything on a single Notion page. No navigation. No \"where did I put that?\" No clicking through three levels of hierarchy to find my actual work. One screen. Everything visible. That's it.",
          "sourceUrl": "https://chudi.dev/blog/adhd-engineer-productivity-system",
          "pageTitle": "ADHD Productivity: The System I Built After GTD Failed Me",
          "publisher": "Chudi Nnorukam"
        }
      ]
    },
    {
      "entityId": "e_009",
      "@type": "Article",
      "name": "I Audited 7 Websites for AI Citability. Here Is What Actually Predicts Citations.",
      "description": "Audit data from 7 websites shows domain authority does not predict AI citations. DA-10 sites outperform DA-92 sites. Three predictors: answer-first content, dateModified schema, and original data.",
      "sameAs": "https://chudi.dev/blog/ai-citability-audit-what-predicts-citations",
      "relations": [
        {
          "predicate": "authoredBy",
          "targetId": "e_001",
          "targetName": "Chudi Nnorukam"
        },
        {
          "predicate": "validates",
          "targetId": "e_006",
          "targetName": "AI Visibility Readiness (AVR) Framework"
        }
      ],
      "hasChunks": [
        {
          "chunkId": "c_009",
          "text": "Based on the audit data and corroborating research, three factors had the strongest predictive power. Pages where the direct answer appears in the first 100 words get extracted more often. Pages with dateModified schema receive 1.8x more AI citations than pages without. In our audit sample, domain authority failed to predict AI citation rates.",
          "sourceUrl": "https://chudi.dev/blog/ai-citability-audit-what-predicts-citations",
          "pageTitle": "I Audited 7 Websites for AI Citability. Here Is What Actually Predicts Citations.",
          "publisher": "Chudi Nnorukam"
        }
      ]
    },
    {
      "entityId": "e_010",
      "@type": "Article",
      "name": "How to Measure Your AI Citation Rate Across ChatGPT, Perplexity, and Claude",
      "description": "Step-by-step guide to measuring domain AI citation rate using manual queries and the citability.dev infrastructure scan. Published on freeCodeCamp. Authored by Chudi Nnorukam.",
      "sameAs": "https://www.freecodecamp.org/news/how-to-measure-your-ai-citation-rate-across-chatgpt-perplexity-and-claude/",
      "relations": [
        {
          "predicate": "authoredBy",
          "targetId": "e_001",
          "targetName": "Chudi Nnorukam"
        },
        {
          "predicate": "about",
          "targetId": "e_005",
          "targetName": "citability.dev"
        },
        {
          "predicate": "about",
          "targetId": "e_006",
          "targetName": "AI Visibility Readiness (AVR) Framework"
        },
        {
          "predicate": "authorHostedCompanion",
          "targetId": "e_016",
          "targetName": "Why AI Isn't Citing Your Website (chudi.dev)"
        },
        {
          "predicate": "authorHostedCompanion",
          "targetId": "e_009",
          "targetName": "I Audited 7 Websites for AI Citability (chudi.dev)"
        }
      ],
      "hasChunks": [
        {
          "chunkId": "c_010",
          "text": "Your AI citation rate is the percentage of topic queries where AI search engines name your site as a source. You can measure it manually in under an hour: pick 20 queries in your niche, run them in ChatGPT Search and Perplexity, count how many return your domain, divide by 20.",
          "sourceUrl": "https://www.freecodecamp.org/news/how-to-measure-your-ai-citation-rate-across-chatgpt-perplexity-and-claude/",
          "pageTitle": "How to Measure Your AI Citation Rate Across ChatGPT, Perplexity, and Claude",
          "publisher": "freeCodeCamp"
        }
      ]
    },
    {
      "entityId": "e_011",
      "@type": "Article",
      "name": "A Developer's Guide to WebMCP: Shipping a 0% Adoption Standard",
      "description": "Practical guide to implementing WebMCP on live sites to let AI agents use website tools directly. Covers the spec, implementation on chudi.dev and citability.dev, and the adoption thesis. Published on freeCodeCamp.",
      "sameAs": "https://www.freecodecamp.org/news/a-developers-guide-to-webmcp/",
      "relations": [
        {
          "predicate": "authoredBy",
          "targetId": "e_001",
          "targetName": "Chudi Nnorukam"
        },
        {
          "predicate": "about",
          "targetId": "e_005",
          "targetName": "citability.dev"
        },
        {
          "predicate": "authorHostedCompanion",
          "targetId": "e_014",
          "targetName": "I Added WebMCP to SvelteKit (chudi.dev)"
        }
      ],
      "hasChunks": [
        {
          "chunkId": "c_011",
          "text": "AI agents can read websites, but WebMCP can let them use website tools directly. In this guide, Chudi Nnorukam explains how (and why) he shipped WebMCP on two live sites despite near-zero adoption today.",
          "sourceUrl": "https://www.freecodecamp.org/news/a-developers-guide-to-webmcp/",
          "pageTitle": "A Developer's Guide to WebMCP: Shipping a 0% Adoption Standard",
          "publisher": "freeCodeCamp"
        }
      ]
    },
    {
      "entityId": "e_012",
      "@type": "SoftwareApplication",
      "name": "Bulenox CME Crypto Futures Bot",
      "description": "CME Micro Bitcoin Futures (MBT) trading bot for the Bulenox prop firm. Rithmic connectivity, a fade strategy, and a quant factory for signal research.",
      "sameAs": "https://chudi.dev/portfolio/bulenox-bot",
      "relations": [
        {
          "predicate": "createdBy",
          "targetId": "e_001",
          "targetName": "Chudi Nnorukam"
        }
      ],
      "hasChunks": [
        {
          "chunkId": "c_012",
          "text": "A CME Micro Bitcoin Futures trading bot built within Bulenox prop-firm rules: Rithmic market data and order execution, a fade strategy validated in a quant factory of 606 backtest configurations, and position/loss-cap compliance.",
          "sourceUrl": "https://chudi.dev/portfolio/bulenox-bot",
          "pageTitle": "Bulenox CME Crypto Futures Bot",
          "publisher": "Chudi Nnorukam"
        }
      ]
    },
    {
      "entityId": "e_013",
      "@type": "SoftwareApplication",
      "name": "Polyphemus",
      "description": "Systematic Polymarket trading bot, documented through a first-party production-architecture case study.",
      "sameAs": "https://chudi.dev/blog/claude-code-production-trading-bot",
      "relations": [
        {
          "predicate": "createdBy",
          "targetId": "e_001",
          "targetName": "Chudi Nnorukam"
        }
      ],
      "hasChunks": [
        {
          "chunkId": "c_013",
          "text": "Polyphemus is a systematic Polymarket trading bot: signal detection, execution with risk controls, and operational tooling, built and documented as a production-grade case study with Claude Code.",
          "sourceUrl": "https://chudi.dev/blog/claude-code-production-trading-bot",
          "pageTitle": "Building a Production Trading Bot with Claude Code",
          "publisher": "Chudi Nnorukam"
        }
      ]
    },
    {
      "entityId": "e_017",
      "@type": "SoftwareApplication",
      "name": "Chiron AI Harness",
      "description": "Personal AI agent harness built on top of Claude Code. Combines a graph-backed knowledge substrate (CODEX-OS), 50+ forged skills, a cross-session decision ledger, a hooks enforcement layer, and a fleet of standing expert agents — all routed through the /ascend forging protocol.",
      "sameAs": "https://chudi.dev/portfolio/chiron-harness",
      "relations": [
        {
          "predicate": "createdBy",
          "targetId": "e_001",
          "targetName": "Chudi Nnorukam"
        },
        {
          "predicate": "implements",
          "targetId": "e_002",
          "targetName": "AI Harness Engineering"
        },
        {
          "predicate": "includes",
          "targetId": "e_003",
          "targetName": "CODEX-OS"
        }
      ],
      "hasChunks": [
        {
          "chunkId": "c_017",
          "text": "Chiron is the operating name for the full AI agent infrastructure built on Claude Code. It stores decisions, entities, and principles in a Convex-backed graph, routes tasks through a library of forged skills, and dispatches domain work to a fleet of standing expert agents — each grounded via the /ascend forging protocol before being deployed.",
          "sourceUrl": "https://chudi.dev/blog/cross-agent-decision-ledger",
          "pageTitle": "4 Decisions in 7 Hours: When My AI Agents Aligned",
          "publisher": "Chudi Nnorukam"
        }
      ]
    },
    {
      "entityId": "e_018",
      "@type": "SoftwareApplication",
      "name": "Tradeify MES Trading System",
      "description": "Systematic Micro E-mini S&P 500 futures trading system on a Tradeify funded account. Momentum-fade strategy executed through Quantower on a Windows VPS, with a remote management plane, dual-log observability, and an evidence-gated contract-scaling protocol.",
      "sameAs": "https://chudi.dev/portfolio/tradeify-mes",
      "relations": [
        {
          "predicate": "createdBy",
          "targetId": "e_001",
          "targetName": "Chudi Nnorukam"
        }
      ],
      "hasChunks": [
        {
          "chunkId": "c_018",
          "text": "The Tradeify MES system runs a momentum-fade strategy on Micro E-mini S&P 500 futures through a Tradeify funded account. It is executed via Quantower on a Windows VPS, managed remotely, and observed through a dual-log model combining a strategy file log and Quantower Serilog. Contract scaling is evidence-gated, requiring n>=30 live confirmed trades before any size increase.",
          "sourceUrl": "https://chudi.dev/portfolio/tradeify-mes",
          "pageTitle": "Tradeify MES Trading System",
          "publisher": "Chudi Nnorukam"
        }
      ]
    },
    {
      "entityId": "e_019",
      "@type": "SoftwareApplication",
      "name": "Founder-OS Cockpit",
      "description": "Private agentic control-plane PWA and FastAPI backend for dispatching and monitoring Claude Code agent jobs from any device. Jobs are queued, picked up by a private-network runner, executed as headless agent processes, and streamed back to the cockpit. Zero public internet exposure.",
      "sameAs": "https://chudi.dev/portfolio/founder-os-cockpit",
      "relations": [
        {
          "predicate": "createdBy",
          "targetId": "e_001",
          "targetName": "Chudi Nnorukam"
        },
        {
          "predicate": "dispatches",
          "targetId": "e_017",
          "targetName": "Chiron AI Harness"
        }
      ],
      "hasChunks": [
        {
          "chunkId": "c_019",
          "text": "The Founder-OS Cockpit is a private progressive web application and FastAPI backend that lets the operator queue, dispatch, and monitor Claude Code agent jobs from any device. Jobs are queued through the PWA, picked up by a runner on the private network, executed as headless agent processes, and streamed back to the cockpit. The system is never exposed to the public internet.",
          "sourceUrl": "https://chudi.dev/portfolio/founder-os-cockpit",
          "pageTitle": "Founder-OS Cockpit: Agentic Control Plane",
          "publisher": "Chudi Nnorukam"
        }
      ]
    },
    {
      "entityId": "e_020",
      "@type": "SoftwareApplication",
      "name": "Standing Expert Agent Fleet",
      "description": "15+ domain-specialist Claude Code agents, each forged via the /ascend protocol. Covers SEO/AEO/GEO, MES futures trading, cold outreach, Convex database engineering, frontend motion, AI-visibility synergy, and agentic control-plane architecture. Routed via a dispatch layer that classifies task type and selects the most grounded specialist.",
      "sameAs": "https://chudi.dev/portfolio/standing-agent-fleet",
      "relations": [
        {
          "predicate": "createdBy",
          "targetId": "e_001",
          "targetName": "Chudi Nnorukam"
        },
        {
          "predicate": "partOf",
          "targetId": "e_017",
          "targetName": "Chiron AI Harness"
        },
        {
          "predicate": "forgedVia",
          "targetId": "e_002",
          "targetName": "AI Harness Engineering"
        }
      ],
      "hasChunks": [
        {
          "chunkId": "c_020",
          "text": "The standing expert agent fleet is the capability layer of the Chiron harness. Each agent is forged through /ascend — a structured protocol that builds a glossary node, codex knowledge graph, grounding artifacts, and a SKILL.md before deployment. Agents cover SEO, MES futures trading, cold outreach, Convex, frontend motion, AI-visibility, and agentic control-plane work. A routing layer dispatches every task to the most grounded specialist.",
          "sourceUrl": "https://chudi.dev/portfolio/standing-agent-fleet",
          "pageTitle": "Standing Expert Agent Fleet",
          "publisher": "Chudi Nnorukam"
        }
      ]
    },
    {
      "entityId": "e_014",
      "@type": "Article",
      "name": "I Added WebMCP to SvelteKit: 90 Min, 3 Files.",
      "description": "How to implement WebMCP using navigator.modelContext in a SvelteKit app. First SvelteKit-specific WebMCP implementation guide. Covers the @mcp-b/global polyfill, tool schema definition, and end-to-end verification in the browser console. Published on chudi.dev.",
      "sameAs": "https://chudi.dev/blog/webmcp-sveltekit-implementation",
      "relations": [
        {
          "predicate": "authoredBy",
          "targetId": "e_001",
          "targetName": "Chudi Nnorukam"
        },
        {
          "predicate": "relatedTo",
          "targetId": "e_011",
          "targetName": "A Developer's Guide to WebMCP (freeCodeCamp)"
        }
      ],
      "hasChunks": [
        {
          "chunkId": "c_014",
          "text": "WebMCP (Feb 2026, Google + Microsoft) adds navigator.modelContext to browsers so AI agents can call your site's tools directly instead of parsing screenshots. Three files changed, one npm package added, 90 minutes, verified live on chudi.dev. No other SvelteKit implementation guide exists yet.",
          "sourceUrl": "https://chudi.dev/blog/webmcp-sveltekit-implementation",
          "pageTitle": "I Added WebMCP to SvelteKit: 90 Min, 3 Files.",
          "publisher": "Chudi Nnorukam"
        }
      ]
    },
    {
      "entityId": "e_015",
      "@type": "Article",
      "name": "Claude Context Management: 3-File System to Beat Compaction",
      "description": "How to persist Claude Code task state across context compaction using a plan.md + context.md + tasks.md dev docs system. When Claude compacts, run /update-dev-docs first; after compaction, say continue and Claude resumes from exactly where it left off. Published on chudi.dev.",
      "sameAs": "https://chudi.dev/blog/claude-context-management-dev-docs",
      "relations": [
        {
          "predicate": "authoredBy",
          "targetId": "e_001",
          "targetName": "Chudi Nnorukam"
        }
      ],
      "hasChunks": [
        {
          "chunkId": "c_015",
          "text": "Dev docs are three files that persist task state outside the conversation. Before compaction, run /update-dev-docs. After compaction, say 'continue' and Claude picks up exactly where you left off. Plan.md holds the approved strategy, context.md holds key files and decisions, tasks.md holds the checklist.",
          "sourceUrl": "https://chudi.dev/blog/claude-context-management-dev-docs",
          "pageTitle": "Claude Context Management: 3-File System to Beat Compaction",
          "publisher": "Chudi Nnorukam"
        }
      ]
    },
    {
      "entityId": "e_016",
      "@type": "Article",
      "name": "Why AI Isn't Citing Your Website",
      "description": "Bing Webmaster Tools recorded 1,500 AI citations for a DR 25 site over 90 days with zero backlinks added in the window. The five checks (schema markup, llms.txt, OpenGraph, semantic HTML, and AI-bot access in robots.txt) that decide whether ChatGPT cites a page. Published on chudi.dev.",
      "sameAs": "https://chudi.dev/blog/why-ai-isnt-citing-your-website",
      "relations": [
        {
          "predicate": "authoredBy",
          "targetId": "e_001",
          "targetName": "Chudi Nnorukam"
        },
        {
          "predicate": "companionOf",
          "targetId": "e_010",
          "targetName": "How to Measure Your AI Citation Rate (freeCodeCamp)"
        },
        {
          "predicate": "about",
          "targetId": "e_006",
          "targetName": "AI Visibility Readiness (AVR) Framework"
        }
      ],
      "hasChunks": [
        {
          "chunkId": "c_016",
          "text": "Bing Webmaster Tools shows 1,500 AI citations for my DR 25 site over 90 days, with zero backlinks added in the window. The conventional wisdom says sites with 32,000+ referring domains are 3.5x more likely to get cited. What moved my citations instead: five checks (schema markup, llms.txt, OpenGraph, semantic HTML, and AI-bot access in robots.txt), changed together.",
          "sourceUrl": "https://chudi.dev/blog/why-ai-isnt-citing-your-website",
          "pageTitle": "Why AI Isn't Citing Your Website",
          "publisher": "Chudi Nnorukam"
        }
      ]
    },
    {
      "entityId": "e_027",
      "@type": "Article",
      "name": "Google Search Console's Generative AI Report: My 19.7K-Impression Read",
      "description": "Google's Generative AI performance report finished rolling out to every Search Console property on August 11, 2026. It withholds queries, withholds clicks, and is not exposed through the Search Console API, so it can only be exported by hand. Published on chudi.dev.",
      "sameAs": "https://chudi.dev/blog/search-console-generative-ai-report",
      "relations": [
        {
          "predicate": "authoredBy",
          "targetId": "e_001",
          "targetName": "Chudi Nnorukam"
        },
        {
          "predicate": "companionOf",
          "targetId": "e_026",
          "targetName": "How to Tell if Search Console Impressions Are Human or Machine (freeCodeCamp)"
        }
      ],
      "hasChunks": [
        {
          "chunkId": "c_027",
          "text": "Google's Generative AI performance report finished rolling out to every Search Console property on August 11, 2026. My own property shows 19.7K impressions inside Google's AI surfaces since May 18. The report withholds the queries, withholds clicks, and is not exposed through the Search Console API (I probed six type values; all six were rejected), so it can only be exported by hand.",
          "sourceUrl": "https://chudi.dev/blog/search-console-generative-ai-report",
          "pageTitle": "Google Search Console's Generative AI Report",
          "publisher": "Chudi Nnorukam"
        }
      ]
    },
    {
      "entityId": "e_025",
      "@type": "Article",
      "name": "How to Run an AI Extractability Audit on Your Site",
      "description": "Whether an AI assistant can lift a sentence from your page is a set of mechanical HTML properties you can measure, score, and fix. Walks the audit run on chudi.dev, the six invisible heading tags it caught, the one-commit fix, and the CI gate that prevents regression. Published on freeCodeCamp. Authored by Chudi Nnorukam.",
      "sameAs": "https://www.freecodecamp.org/news/how-to-run-an-ai-extractability-audit/",
      "relations": [
        {
          "predicate": "authoredBy",
          "targetId": "e_001",
          "targetName": "Chudi Nnorukam"
        },
        {
          "predicate": "about",
          "targetId": "e_005",
          "targetName": "citability.dev"
        },
        {
          "predicate": "about",
          "targetId": "e_006",
          "targetName": "AI Visibility Readiness (AVR) Framework"
        },
        {
          "predicate": "authorHostedCompanion",
          "targetId": "e_009",
          "targetName": "I Audited 7 Websites for AI Citability (chudi.dev)"
        }
      ],
      "hasChunks": [
        {
          "chunkId": "c_025",
          "text": "When an AI assistant answers a question, it lifts sentences from a handful of pages and cites them. Whether your page is liftable is not a mystery or a vibe. It's a set of mechanical properties of your HTML that you can measure, score, and fix.",
          "sourceUrl": "https://www.freecodecamp.org/news/how-to-run-an-ai-extractability-audit/",
          "pageTitle": "How to Run an AI Extractability Audit on Your Site",
          "publisher": "freeCodeCamp"
        }
      ]
    },
    {
      "entityId": "e_026",
      "@type": "Article",
      "name": "How to Tell if Search Console Impressions Are Human or Machine",
      "description": "A page with 3,068 first-page impressions and zero clicks usually does not have a click-through-rate problem. Nobody saw those results, because no human ever ran those searches. How to separate machine-issued impressions from human demand. Published on freeCodeCamp. Authored by Chudi Nnorukam.",
      "sameAs": "https://www.freecodecamp.org/news/how-to-tell-if-search-console-impressions-are-human-or-machine/",
      "relations": [
        {
          "predicate": "authoredBy",
          "targetId": "e_001",
          "targetName": "Chudi Nnorukam"
        },
        {
          "predicate": "about",
          "targetId": "e_006",
          "targetName": "AI Visibility Readiness (AVR) Framework"
        },
        {
          "predicate": "authorHostedCompanion",
          "targetId": "e_027",
          "targetName": "Search Console Generative AI Report (chudi.dev)"
        }
      ],
      "hasChunks": [
        {
          "chunkId": "c_026",
          "text": "The usual reading is that the page has a click-through-rate problem, so you rewrite the title, tighten the meta description, and wait. That reading is likely wrong, and acting on it wastes real work. Nobody saw those results, because no human ever ran those searches.",
          "sourceUrl": "https://www.freecodecamp.org/news/how-to-tell-if-search-console-impressions-are-human-or-machine/",
          "pageTitle": "How to Tell if Search Console Impressions Are Human or Machine",
          "publisher": "freeCodeCamp"
        }
      ]
    },
    {
      "entityId": "e_022",
      "@type": "Service",
      "name": "Citation Gap Diagnostic",
      "description": "If ChatGPT and Perplexity never cite your site, those buyers go to whoever they do cite. In 5 business days you get the exact list of what is blocking you, 15 real tests, and a 30-minute call to walk through fixing it. Nothing scored that was not tested. $1,500.",
      "sameAs": "https://chudi.dev/services",
      "relations": [
        {
          "predicate": "offeredBy",
          "targetId": "e_001",
          "targetName": "Chudi Nnorukam"
        }
      ],
      "hasChunks": [
        {
          "chunkId": "c_022",
          "text": "Citation Gap Diagnostic: a fixed-scope, evidence-gated audit of why AI answer engines do or do not cite a site, delivered in 5 business days with 15 real tests and a 30-minute walkthrough call. $1,500.",
          "sourceUrl": "https://chudi.dev/services",
          "pageTitle": "Services",
          "publisher": "Chudi Nnorukam"
        }
      ]
    },
    {
      "entityId": "e_023",
      "@type": "Service",
      "name": "AI Visibility Sprint",
      "description": "4-week guided implementation. Structured data, content architecture, technical SEO, and AI-readiness improvements from your diagnostic findings. Weekly progress calls included. Sold with a $1,500 a month managed retainer. $4,500.",
      "sameAs": "https://chudi.dev/services",
      "relations": [
        {
          "predicate": "offeredBy",
          "targetId": "e_001",
          "targetName": "Chudi Nnorukam"
        },
        {
          "predicate": "relatedTo",
          "targetId": "e_022",
          "targetName": "Citation Gap Diagnostic"
        }
      ],
      "hasChunks": [
        {
          "chunkId": "c_023",
          "text": "AI Visibility Sprint: a 4-week fixed-scope engagement implementing structured data, content architecture, technical SEO, and AI-readiness fixes from a diagnostic, with weekly progress calls, sold together with a $1,500 a month managed retainer. $4,500.",
          "sourceUrl": "https://chudi.dev/services",
          "pageTitle": "Services",
          "publisher": "Chudi Nnorukam"
        }
      ]
    },
    {
      "entityId": "e_024",
      "@type": "Service",
      "name": "Custom builds",
      "description": "Scoped per project. Bots, automations, full-stack applications, AI pipelines. Fixed scope, fixed price after scoping. Full source code and documentation included. From $5,000.",
      "sameAs": "https://chudi.dev/services",
      "relations": [
        {
          "predicate": "offeredBy",
          "targetId": "e_001",
          "targetName": "Chudi Nnorukam"
        }
      ],
      "hasChunks": [
        {
          "chunkId": "c_024",
          "text": "Custom builds: scoped bots, automations, full-stack applications, and AI pipelines, fixed scope and fixed price after scoping, with full source code and documentation included. From $5,000.",
          "sourceUrl": "https://chudi.dev/services",
          "pageTitle": "Services",
          "publisher": "Chudi Nnorukam"
        }
      ]
    }
  ]
}