Skip to content
Kart-ingPublic

About

Disclosed sponsored placements in llms.txt, plus a check of whether answer engines keep the "sponsored" label. Built with Parth Kshirsagar at Terac's Zero Human Company Hackathon, August 2026.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

45 Commits

Folders and files

Repository files navigation

ADLAYER

The ad network for the answer layer.

Agents are becoming the traffic. Agents read llms.txt. Nobody has priced that inventory.

AdLayer sells placements in llms.txt, enforces disclosure in code, and then measures the thing nobody has measured: does the "sponsored" label survive the model?

Built by Kartikey Pandey and Parth Kshirsagar for the Zero Human Company Hackathon by Terac, at Humanmade in San Francisco, 15 August 2026.

Parth's site, parthk.com, lists AdLayer as "3rd Place — Render" at this hackathon.


The open question

We place a clearly-labeled sponsored entry in a publisher's llms.txt. We poll answer engines. Three outcomes, all publishable:

Observed What it means
surfaced_labeled Disclosure propagates. Honest agent advertising is viable.
surfaced_unlabeled The model strips the label. Ad disclosure is structurally broken in the answer layer.
absent llms.txt does not influence this engine. The premise is weaker than the industry assumes.

We ship whichever we measure. A negative result reported honestly beats a positive result that collapses under a judge's first question.

Disclosure is not optional

Every served block carries [SPONSORED] and a disclosure notice. assertDisclosed() throws before any write, and there is deliberately no flag that turns it off.

Disclosed paid placement is advertising. Undisclosed content engineered to steer agents is prompt injection. We build the first and not the second.

That distinction is the product, not a footnote. See /disclosure on the deployed app for the public policy and the exact block format.

Architecture

                       src/contract.ts
                    (one shape, written first)
                              |
        ┌─────────────────────┴─────────────────────┐
        │                                           │
   A — THE NETWORK                            B — THE BUSINESS
   src/serve/  publishers/                    src/prove/  web/
        │                                           │
   render llms.txt block                     poll answer engines
   enforce disclosure                        classify propagation
   GLiGuard compliance veto                  Terac human trust study
   3 real publisher sites                    Stripe + dashboard
        │                                           │
        └──────────────  placements[]  ─────────────┘

engine/ is the working citation-capture engine ported from CITED (c0mpiled Startup School, 24 Jul 2026).

Docs

File What
PRD.md Master plan, prize map, schedule, risks
PRD-A-network.md Person A — supply, serving, compliance veto
PRD-B-business.md Person B — demand, measurement, Terac, money
GUIDEBOOK.md Full hackathon reference: tracks, criteria, credits, deadlines
src/contract.ts The one shared shape both halves build on

Setup

npm install
cp .env.example .env     # everything degrades gracefully when unset
npm run typecheck
npm test

Every side effect is dry-run by default. LIVE_SERVE, LIVE_MEASURE, and LIVE_STUDY all default to 0.

About

Disclosed sponsored placements in llms.txt, plus a check of whether answer engines keep the "sponsored" label. Built with Parth Kshirsagar at Terac's Zero Human Company Hackathon, August 2026.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages