Skip to main content

I Audited My Own Site With AVR v1.1.0. Here Is What I Found.

Chudi Nnorukam May 23, 2026 4 min read

The first comprehensive 8-section AVR v1.1.0 audit of chudi.dev produced AGENT-READY 3/3 on §2.7 but only 40/100 on Fact-Block Density. Here is the full audit and what it would take to fix every failing check.

Why this matters

chudi.dev passed every infrastructure check (Sections 1+2+6) but failed Fact-Block Density (40/100). The framework page scored 51/100. The gap is content shape, not infrastructure. The remediation plan is three rules, not a re-architecture.

The AI Visibility Readiness Framework moved to v1.1.0 last week. The new spec adds three audit sections nobody else tracks: WebMCP Agent Readiness (§2.7), Fact-Block Density (§3.7), and Citation Decay Rate (§7). I ran the full audit against chudi.dev on 2026-05-23 at 07:00 UTC. Here is the report.

The headline numbers

chudi.dev passed SEO Foundation (Section 1), AI Infrastructure (Section 2), and Agent Readiness (Section 6). It landed AGENT-READY 3/3 because the WebMCP manifest at /.well-known/webmcp resolves, the A2A AgentCard at /.well-known/agent.json resolves, and the five API endpoints those manifests declare (/api/webmcp/list-posts, /api/webmcp/read-post, /api/webmcp/avr-self-audit, /api/webmcp/author-profile, /api/agent/dispatch) all return real handlers with valid CORS preflights. Citation Decay Rate came back GROWING with retention 1.65 across 89 days of Bing AI Performance data and the post-tune half-life algorithm correctly returned no half-life crossing.

Fact-Block Density failed. chudi.dev root scored 40 out of 100 (NOT-EXTRACTABLE). The framework page scored 51 out of 100 (PARTIALLY-EXTRACTABLE).

Why Fact-Block Density failed even though the rest passed

The infrastructure checks ask whether AI engines CAN reach the content. The Fact-Block Density checks ask whether the content they reach is shaped for citation. Those are different questions.

On chudi.dev/framework the audit found that 100% of H2 sections open with sentences that stand alone as answers, but 0% of those H2 paragraphs land in the 40-60 word direct-answer band. The opening sentence is right; the supporting paragraph is the wrong length. Only 8.3% of H2 and H3 headings are phrased as questions a user would actually type. There is no FAQ section at the bottom of the page.

Three failures, three remediation targets. The first-sentence rule already passes. The path from 51 to 75+ is not a content rewrite, it is a paragraph-length tune and a heading rewrite and an FAQ addition.

The remediation plan

Read the full plan at avr-pipeline/AVR-V1-1-0-FACT-BLOCK-REMEDIATION-PLAN.md in the repo. The headline targets:

PageCurrent scoreTop failing checkFastest remediation
chudi.dev root40/100direct-answer band + question headings + FAQAdd FAQ section; rewrite H2 openings to 40-60 words; convert top 3 H2 headings to questions
chudi.dev/framework51/100direct-answer band + question headings + FAQSame three remediations applied to the methodology bento sections
/blog (index)not yet auditedTBDRun section_fact_block_density.py on this URL
/work (index)not yet auditedTBDSame
/aboutnot yet auditedTBDSame

Each rewrite is a 5 to 15 minute edit per H2 section. The framework page has 4 main H2 sections, so the lift is 20 to 60 minutes total. The score should move from 51 to 75+ once the band check passes and the FAQ lands.

Why this is a defensible deliverable

Most AI visibility tools return a score and nothing else. The AVR v1.1.0 audit returns five things you can act on: the verdict for each of 8 sections, the per-check pass/fail with compliance percentages, the specific recommendation each failing check generates, the canonical evidence the recommendation cites, and the reproducible command you can re-run to verify the fix landed.

For Fact-Block Density that means I know exactly which 92% of headings on chudi.dev/framework are not in question format, exactly which 100% of H2 paragraphs miss the 40-60 word band, and I have a runnable command (python3 run_audit.py chudi.dev/framework --skip-lighthouse --full-v11) that will confirm when remediation lands the score above 75.

For Citation Decay Rate that means I know the algorithm correctly suppressed the previous false-positive (21-day half-life reading on overall-growing data) because the 12-case pytest regression suite validates the suppression. The retention rate of 1.65 across 89 days is computed from real Bing CSV data, not estimated.

The case-study hypothesis ratifies

chudi.dev is supposed to DEMONSTRATE AVR. citability.dev is supposed to IMPLEMENT AVR. Until this week both claims were aspirational. As of 2026-05-23 both sites land AGENT-READY 3/3 on production with meaningful endpoint resolution. Both produce real JSON responses on the declared WebMCP tools. Both pair with the same audit script that produces the same shape of report.

The piece left is Fact-Block Density remediation on chudi.dev pages. That is a content-editing arc, not an infrastructure arc. It is the next thing I will ship.

Run the audit yourself

git clone https://github.com/ChudiNnorukam/avr-pipeline.git
cd avr-pipeline
pip install -r scripts/requirements.txt
python3 scripts/run_audit.py YOUR_URL --skip-lighthouse --full-v11

The free audit gives you Sections 1+2+6+7+8 at $0 cost. Add --live-test --brand "..." --owner "..." --topics "..." for Sections 3+4+5 (live AI engine polling, ~$2 per audit).

The report drops into sample-audits/audit_<domain>_<timestamp>.md. The per-section JSON files drop alongside for programmatic analysis. The pytest suite at tests/test_section_citation_decay.py runs in 0.04 seconds.

If your site comes back NOT-EXTRACTABLE on Fact-Block Density and you do not know where to start, the recommendations in the audit JSON tell you which H2 sections fail which checks and in what order to fix them. That is the deliverable.

FAQ

What does AGENT-READY 3/3 mean?

The AVR v1.1.0 §2.7 audit checks three things on a site, the WebMCP manifest at /.well-known/webmcp, the A2A AgentCard at /.well-known/agent.json, and whether the endpoints those manifests declare actually resolve to non-404 responses. 3/3 means all three pass. chudi.dev and citability.dev both land here after their manifest files plus backing API routes deployed.

Why did chudi.dev score 40/100 on Fact-Block Density when its infrastructure passes?

The infrastructure checks measure whether AI engines CAN reach the content. The Fact-Block Density checks measure whether the content they reach is shaped for citation. chudi.dev's root H2 sections do not open with paragraphs in the 40-60 word direct-answer band, do not use question-shaped headings, and the root page has no FAQ section. Those three failures cost 60 points.

Can other people run this audit on their own sites?

Yes. The avr-pipeline repository at github.com/ChudiNnorukam/avr-pipeline ships the run_audit.py script and section_*.py modules that produce every number in this post. Clone the repo, install requirements.txt, and run python3 run_audit.py YOUR_URL --skip-lighthouse --full-v11 for the free seven-section audit (Section 5 calibration plus Sections 3+4 live AI testing add ~$2 in API costs).

Is Citation Decay Rate a real metric or marketing language?

Citation Decay Rate is a measurement extracted from the Bing AI Performance Report CSV that Microsoft Webmaster Tools exports. The raw substrate is real Bing AI Copilot citation counts over a 30 to 90 day window. The derived metrics (half-life, decay slope, displacement events, retention rate) are computed by section_citation_decay.py and tested by a 12-case pytest regression suite. They are not marketing language.

Sources & Further Reading

Further Reading

What do you think?

I post about this stuff on LinkedIn every day and the conversations there are great. If this post sparked a thought, I'd love to hear it.

Discuss on LinkedIn