Defining Agent-Directed Manipulation v0.1

Published 2026-07-30 · 日本語 · Source on GitHub

AI agents now read web pages and act on them — comparing, recommending, buying. In response, a practice has emerged: placing text that is invisible to human readers, or planted in third-party regions of a page, in order to steer the machine's judgment.

At the same time, making yourself machine-readable — structured data, llms.txt, clear specifications — is a legitimate practice. The two must not be confused.

This document draws the line between them. The goal is that anyone measuring the same page arrives at the same verdict.

Definition

Agent-directed manipulation is text on a web page that is addressed to a machine reader rather than a human one, and that is either (a) placed where humans cannot see it or (b) placed in a third-party submission region, and that instructs the reader's judgment, output, or ranking.

Two axes, and only two

Classification uses two axes. No subjective assessment of malice is involved.

AxisValueMeaning
Regionfirst_partyThe site operator's own surface (body copy, meta, structured data)
third_partyRegions others can post into (reviews, comments, UGC, embeds)
VisibilityvisibleReadable by a human under normal rendering
hiddenPlaced where a human reader will not reach it

Severity

RegionVisibilitySeverityReading
first_partyvisibleinfoOrdinary advertising copy. Not a finding
first_partyhiddenwarnHidden text. Equivalent to search-engine cloaking
third_partyvisiblewarnSomeone else placed an agent-directed instruction
third_partyhiddenhighInvisible injection by a third party

Why only two axes. Add an axis like "is this overblown?" and the line against legitimate advertising copy disappears — the verdict starts depending on who is measuring. For this to work as a standard, every axis has to be mechanically decidable.

What counts as hidden

TechniqueExamples
CSS concealmentdisplay:none, visibility:hidden, the hidden attribute
Effectively invisiblefont-size:0, opacity:0, text color matching background
Positioned off-screenLarge negative offsets
Markup onlyHTML comments, contents of <template>
Hidden from assistive techaria-hidden="true"
Attribute values onlymeta content, alt, title, data-*

Conditional CSS does not count as hidden. Declarations inside @media (max-width:640px), @media print, @supports, or @container apply only under specific conditions. Calling responsive layout or print styles "hidden text" is simply wrong.

When external CSS cannot be resolved, do not conclude hidden. Report the visibility as undetermined and say so. Treating what you cannot resolve as a finding is how false positives are manufactured.

Determining third_party

Third-party regions are inferred from structured markup such as itemprop="review", from class/id tokens indicating submission areas, and from embedded elements.

This is inference. When uncertain, fall back to first_party. Because third_party carries the higher severity, erring on the safe side means treating content as the operator's own.

Operator-side markers override the inference. Editorial reviews, operator-written summaries, and published testimonials are first-party content, whatever the class name suggests.

What is deliberately not detected

These must stay out of scope. Include any one of them and the standard becomes unusable.

Known limits

Do not hide these limits behind a claim of detection. Reporting "nothing found" when you did not look is the worst failure mode available to a standard like this.

Machine-readable form

The same content is published in a form machines can read. This standard itself holds that structured data and llms.txt are legitimate self-presentation — so it demonstrates that on itself first.

These carry the same content as the prose above. Nothing is said to a machine that is not said to a human. Serving different things to different readers is the practice this document exists to name.

Versioning

v0.1 (2026-07-30), initial release.

Revisions will not delete prior versions; changes and their reasons stay on the record. A standard earns trust not by never changing, but by making its changes traceable.