VERUNEL · Cutoff 7 Sept 2026, 12:00 UTC
Sample assessment: from measurements to next steps
Explicitly synthetic sample: three pages, four issue groups and four linked actions. Start by investigating slow LCP and enforcing CSP; then distinguish the titles and verify the image purpose.
Assessment scope
https://primer.test/
- Plan and profile
- snapshot · full assessment
- Assessed pages
- 3 / 10
- Duration
- Not run – synthetic sample
- Tools
- 1
Assessed pages (3)
https://primer.test/https://primer.test/storitvehttps://primer.test/kontakt
Skipped or constrained: Three explicitly synthetic URLs are shown; no page was visited over the network.
01 · VERUNEL ACTION PACK
From decision to implementation ticket.
The same frozen report version becomes a concise approval brief and a developer backlog without manually rewriting findings.
Decision brief
The most important decisions, suggested owners, coverage and limitations on one page.
- Speed up the main contentdevelopment · M
- Enforce the verified CSP policydevelopment · M
- Give pages distinct, descriptive titlesmarketing/SEO · S
4 ready tasks
Every ticket includes the measured signal, impact, URLs, evidence, recommendation and re-verification criteria.
- ready tickets
- 4
- affected URLs
- 3
- evidence-bound tickets
- 4
Exports use this report version.
02 · Seven pillars
How to read the index
The index is a prioritization signal, not a certificate. A pass contributes 100%, a warning 50% and a failure 0% of weighted points. Unavailable data reduces coverage, not the score; severity orders action and is not a separate deduction.
| Pillar | Score | Coverage |
|---|---|---|
| Security and privacy | 82/100 | 100% |
| Experience and accessibility | 81/100 | 100% |
| Performance and reliability | 67/100 | 73% |
| SEO and discoverability | 75/100 | 100% |
| Content and business utility | 100/100 | 100% |
| Technical foundations | 100/100 | 100% |
| Environment and changeThis pillar score does not establish change status. No comparable baseline is available. | 100/100 | 100% |
An empty axis means no score; it is not zero. The chart shape is not an additional score calculation.
Security and privacy
Protection of transport, users, data and legal transparency.
100% usable coverage · 3 contributionsShow metrics, weights and contribution
domain_email.hostname_match✓passed11.00 / 1.00security.hsts✓passed1.21.20 / 1.20Experience and accessibility
How reliably and inclusively people can use the site and its key journeys.
100% usable coverage · 3 contributionsShow metrics, weights and contribution
accessibility.form_labels✓passed1.21.20 / 1.20visual_responsive.horizontal_scroll✓passed0.80.80 / 0.80Performance and reliability
Availability, speed, responsiveness and errors during real execution.
73% usable coverage · 4 contributionsShow metrics, weights and contribution
field_performance.lcp?cannot tell1.10.00 / 0.00http_network.http_status✓passed11.00 / 1.00lab_performance.cls✓passed11.00 / 1.00SEO and discoverability
Technical signals that help search and answer systems understand the site.
100% usable coverage · 2 contributionsShow metrics, weights and contribution
seo.indexability✓passed11.00 / 1.00Content and business utility
Offer clarity, trust and the site’s ability to guide a user to an outcome.
100% usable coverage · 1 contributionShow metrics, weights and contribution
content_trust.offer_clarity✓passed0.80.80 / 0.80Technical foundations
Valid structure, maintainable technologies and platform capabilities.
100% usable coverage · 1 contributionShow metrics, weights and contribution
html_compatibility.doctype✓passed0.70.70 / 0.70Environment and change
Environmental estimates and meaningful changes from a comparable prior measurement.
100% usable coverage · 2 contributionsShow metrics, weights and contribution
changes.comparability?not tested00.00 / 0.00environmental.transferred_bytes✓passed0.40.40 / 0.4003 · Changes over time
Changes over time
04 · Findings
Issue groups
4 / 4
01Performance and reliabilityThe main content appears too slowly
Desktop view · 1440 pxMobile view · 390 pxhigh2 measurement records · 1 affected page · 1 linked evidence item
The main content appears too slowly
Desktop view · 1440 pxMobile view · 390 pxWhat the measurement found
DIRECT MEASUREMENTSynthetic lab LCP: home page 4.1 s on desktop and 4.2 s on mobile. The good LCP threshold is 2.5 s.
Desktop view · 1440 pxMobile view · 390 pxResult interpretation
AI INTERPRETATIONLate main content can hinder the first view of the offer. Business impact is not measured in this sample.
What to do next
AI INTERPRETATIONFirst capture the LCP element and timing trace. The image, font or server are hypotheses, not a confirmed cause.
What the resolved state looks like: Repeat the lab measurement on the same URL, profile, network and cache state. LCP should be at most 2.5 s; retain the raw record and element attribution if available. Confirm the cause with a timing trace; assess real-user data separately.
Affected pages and elements
https://primer.test/https://primer.test/Technical details
lab_performance.lcp · 1[
{
"subject": {
"kind": "page",
"id": "sample-page-home",
"url": "https://primer.test/"
},
"dimensions": {
"viewport": "desktop",
"profile": "desktop-1440-light",
"width": 1440,
"height": 1000,
"dpr": 1,
"cpuSlowdown": 1,
"network": "unthrottled",
"cache": "cold",
"mode": "lab"
},
"value": 4.1,
"unit": "s",
"evidenceIds": [
"ev-measurements"
],
"evidenceBindings": [
{
"evidenceId": "ev-measurements",
"relation": "diagnostic_log",
"quality": "corroborating",
"profile": "desktop-1440-light"
}
],
"rootCauseKeys": [
"rule:lab_performance.lcp"
]
},
{
"subject": {
"kind": "page",
"id": "sample-page-home",
"url": "https://primer.test/"
},
"dimensions": {
"viewport": "mobile",
"profile": "mobile-390-light",
"width": 390,
"height": 844,
"dpr": 1,
"cpuSlowdown": 1,
"network": "unthrottled",
"cache": "cold",
"mode": "lab"
},
"value": 4.199999999999999,
"unit": "s",
"evidenceIds": [
"ev-measurements"
],
"evidenceBindings": [
{
"evidenceId": "ev-measurements",
"relation": "diagnostic_log",
"quality": "corroborating",
"profile": "mobile-390-light"
}
],
"rootCauseKeys": [
"rule:lab_performance.lcp"
]
}
]02Security and privacyCSP is only in report-only mode
medium1 measurement record · 1 affected page · 1 linked evidence item
CSP is only in report-only mode
Exact network evidence
https://primer.test/Open network ledger ↗What the measurement found
DIRECT MEASUREMENTThe synthetic home-page response contains Content-Security-Policy-Report-Only, but no enforced Content-Security-Policy header.
Result interpretation
AI INTERPRETATIONReport-only records violations but does not block disallowed sources. This alone does not demonstrate an exploitable vulnerability.
What to do next
AI INTERPRETATIONReview reported violations, identify required sources and enforce CSP after testing the journeys.
What the resolved state looks like: The assessed URL response includes an enforced Content-Security-Policy header with approved sources. Report-only is not enforcement. Verify agreed journeys and policy violations after enabling it.
Affected pages and elements
https://primer.test/Technical details
security.csp · 1[
{
"subject": {
"kind": "page",
"id": "sample-page-home",
"url": "https://primer.test/"
},
"dimensions": {},
"value": {
"enforced": null,
"reportOnly": "default-src 'self'; report-uri /csp-report"
},
"evidenceIds": [
"ev-headers"
],
"evidenceBindings": [
{
"evidenceId": "ev-headers",
"relation": "exact_resource",
"quality": "primary",
"resourceUrl": "https://primer.test/"
}
],
"rootCauseKeys": [
"rule:security.csp"
]
}
]03SEO and discoverabilityTwo pages share the same title
medium2 measurement records · 2 affected pages · 1 linked evidence item
Two pages share the same title
Exact network evidence
https://primer.test/storitveOpen network ledger ↗https://primer.test/kontaktOpen network ledger ↗What the measurement found
DIRECT MEASUREMENT/storitve and /kontakt use “Storitve | Primer”; the home page has a different title.
Result interpretation
AI INTERPRETATIONDistinct descriptive titles help people and search engines distinguish the content.
What to do next
AI INTERPRETATIONKeep the appropriate title for /storitve, use “Kontakt | Primer” for /kontakt and repeat the comparison.
What the resolved state looks like: Every URL in the assessed scope has an appropriate, unique title. A repeated title comparison over the same scope no longer detects these duplicates.
Affected pages and elements
https://primer.test/storitvehttps://primer.test/kontaktTechnical details
seo.duplicate_titles · 1[
{
"subject": {
"kind": "page",
"id": "sample-page-services",
"url": "https://primer.test/storitve"
},
"dimensions": {},
"value": {
"title": "Storitve | Primer",
"urls": [
"https://primer.test/storitve",
"https://primer.test/kontakt"
]
},
"evidenceIds": [
"ev-titles"
],
"evidenceBindings": [
{
"evidenceId": "ev-titles",
"relation": "exact_resource",
"quality": "primary",
"resourceUrl": "https://primer.test/storitve"
}
],
"rootCauseKeys": [
"rule:seo.duplicate_titles"
]
},
{
"subject": {
"kind": "page",
"id": "sample-page-contact",
"url": "https://primer.test/kontakt"
},
"dimensions": {},
"value": {
"title": "Storitve | Primer",
"urls": [
"https://primer.test/storitve",
"https://primer.test/kontakt"
]
},
"evidenceIds": [
"ev-titles"
],
"evidenceBindings": [
{
"evidenceId": "ev-titles",
"relation": "exact_resource",
"quality": "primary",
"resourceUrl": "https://primer.test/kontakt"
}
],
"rootCauseKeys": [
"rule:seo.duplicate_titles"
]
}
]04Experience and accessibilityReview the decorative image description
Mobile view · 390 pxlow1 measurement record · 1 affected page · 2 linked evidence items
Review the decorative image description
Mobile view · 390 pxExact evidence
Sample illustration · mobile home pageAuthored element/context illustration; not a capture of a live website or proof of an LCP cause.
- URL
https://primer.test/- View
- Mobile view · 390 px
- Element location
#hero-decoration- Text
- Jasna storitev.
- HTML excerpt
<img id="hero-decoration" src="/vzorec.svg" alt="Jasna storitev.">
What the measurement found
DIRECT MEASUREMENTThe sample element #hero-decoration has alt “Jasna storitev.”, repeating the adjacent heading. Its decorative purpose is an explicit sample assumption requiring human judgement.
Mobile view · 390 pxResult interpretation
AI INTERPRETATIONIf decorative, the description unnecessarily repeats content in a screen reader. No real user session was performed.
What to do next
AI INTERPRETATIONConfirm the decorative purpose, use alt="" and inspect the accessible name. If the image conveys meaning or a function, describe that instead.
What the resolved state looks like: A person verifies the image purpose. A decorative image has alt="" and does not repeat nearby text in its accessible name; an informative or functional image describes its meaning or function. Repeat accessible-name inspection and automated checks.
Affected pages and elements
https://primer.test/Exact evidence
- View
- Mobile view · 390 px
- Element location
#hero-decoration- Text
- Jasna storitev.
- HTML excerpt
<img id="hero-decoration" src="/vzorec.svg" alt="Jasna storitev.">
Technical details
accessibility.alt_text · 1[
{
"subject": {
"kind": "page",
"id": "sample-page-home",
"url": "https://primer.test/"
},
"dimensions": {
"viewport": "mobile",
"profile": "mobile-390-light",
"width": 390,
"height": 844,
"dpr": 1,
"cpuSlowdown": 1,
"network": "unthrottled",
"cache": "cold",
"mode": "lab"
},
"value": {
"elements": [
{
"evidenceId": "ev-home",
"selector": "#hero-decoration",
"elementFingerprint": "sample-decoration",
"text": "Jasna storitev.",
"html": "<img id=\"hero-decoration\" src=\"/vzorec.svg\" alt=\"Jasna storitev.\">",
"purpose": "decorative — explicitly authored sample assumption, requires human verification"
}
]
},
"evidenceIds": [
"ev-home",
"ev-measurements"
],
"evidenceBindings": [
{
"evidenceId": "ev-home",
"relation": "exact_element",
"quality": "primary",
"profile": "mobile-390-light",
"selector": "#hero-decoration",
"elementFingerprint": "sample-decoration"
}
],
"rootCauseKeys": [
"rule:accessibility.alt_text"
]
}
]What already works well
Content and business utility
100/100 · 100% usable coverage
Technical foundations
100/100 · 100% usable coverage
Environment and change
100/100 · 100% usable coverage
Security and privacy
82/100 · 100% usable coverage
05 · Action plan
Now · Next · Later
4 recommendations
Priority combines severity, confirmed scope, confidence and effort. Score and coverage are separate signals; at most five tasks are marked Now.
Speed up the main content
Late main content can hinder the first view of the offer. Business impact is not measured in this sample.
Steps
- First capture the LCP element and timing trace. The image, font or server are hypotheses, not a confirmed cause.
- Repeat the lab measurement on the same URL, profile, network and cache state. LCP should be at most 2.5 s; retain the raw record and element attribution if available. Confirm the cause with a timing trace; assess real-user data separately.
Enforce the verified CSP policy
Report-only records violations but does not block disallowed sources. This alone does not demonstrate an exploitable vulnerability.
Steps
- Review reported violations, identify required sources and enforce CSP after testing the journeys.
- The assessed URL response includes an enforced Content-Security-Policy header with approved sources. Report-only is not enforcement. Verify agreed journeys and policy violations after enabling it.
Give pages distinct, descriptive titles
Distinct descriptive titles help people and search engines distinguish the content.
Steps
- Keep the appropriate title for /storitve, use “Kontakt | Primer” for /kontakt and repeat the comparison.
- Every URL in the assessed scope has an appropriate, unique title. A repeated title comparison over the same scope no longer detects these duplicates.
Verify the image purpose and accessible name
If decorative, the description unnecessarily repeats content in a screen reader. No real user session was performed.
Steps
- Confirm the decorative purpose, use alt="" and inspect the accessible name. If the image conveys meaning or a function, describe that instead.
- A person verifies the image purpose. A decorative image has alt="" and does not repeat nearby text in its accessible name; an informative or functional image describes its meaning or function. Repeat accessible-name inspection and automated checks.
06 · Evidence
Files and screenshots
4 evidence files
Sample illustration · mobile home page
Authored element/context illustration; not a capture of a live website or proof of an LCP cause.
sha256:1cbc3a8ff0585e228489…Synthetic HTTP headers
Enforced CSP is absent; a report-only header is present.
sha256:e594d689ec2cab3e6ec2…Synthetic measurements and scoring inputs
Explicitly synthetic data, profiles, outcomes and missing states. LCP element and cause are not identified.
sha256:ed63b7d3e04c73412668…Synthetic title comparison
Titles for all three URLs in the declared scope.
sha256:7bc185cea10741ffb8f3…07 · Methodology
Version integrity
Methodology limitations
- This is an authored demonstration, not a customer assessment. Measurements and the displayed AI interpretation are synthetic. It includes a limited selection of catalog inputs; remaining checks were not performed and the displayed coverage does not describe them. Browser and LCP measurements cover only the entry URL; the additional pages are included in title comparison and HTTP/content checks.
- LCP is a lab signal without element attribution or a causal timing trace. Real-user data and a comparison baseline are unavailable. A technical score is not a compliance certificate.
- The catalog contains 556 checks in 22 categories. Scope/methodology and inventory explain execution; they have no score and do not affect the index. The other 20 categories form 7 pillars.
- An observation contributes: passed 1, warning 0.5, failed 0. A metric's normalized contribution is the mean of usable observations of the same metric and rule × 100, rounded to one decimal place.
- Earned points = rule weight × normalized contribution / 100. Pillar score = total earned / total maximum points × 100, rounded to an integer. The index is the weighted mean of scored pillars, rounded again to an integer. Rule weights come from the versioned presentation registry; weight 0 does not affect the score.
- Unknown, not tested, blocked and error have no score outcome and reduce coverage; not applicable is excluded. Metric coverage is usable / relevant observations, then weighted by rules and pillars. The index is published only at 60% usable coverage or above.
- Coverage describes the inputs to this particular assessment; it does not imply that every catalog check was performed. Assessed URL count is a separate measure. An absent baseline is neither improvement nor regression.
- Status is a check outcome. Contribution is a score calculation. Severity describes the finding, priority orders recommended work, and coverage describes usable measurements. These terms are distinct.
Method versions
- Rule catalogue
- 2026.08.1
- Scoring model
- verunel-risk-v2
- Copy and presentation
- 2026.08.1.presentation.4
sha256:abb94f9d31b4129d502bd773568bfefdbc9cf56611733d2b7f23b74b400ff8b6