in the same vein as AGENTS.md, CLAUDE.md, and a fuckton of other repo spam, I present AAA-NO-SLOP.md, a file for humans viewing repositories that signals two things:

  • this repository doesn’t accept LLM contributions of any kind
  • every other LLM instruction in this repository (AGENTS.md, CLAUDE.md, and all the rest) is poisoned and designed to deter LLM use

enjoy!

for any guests who stumble upon this thread: no I’m not entertaining discussion on why I’m doing this or how I shouldn’t do it

  • self@awful.systemsOPM
    link
    fedilink
    arrow-up
    6
    ·
    17 hours ago

    I’m filing a bug for myself to clarify in the README.md that the provided poisoning instructions likely aren’t very effective, and that this is partially on purpose. LLM companies are known to filter out (via either regex or sometimes zero weighting) instructions that are known to trip up their chatbots, and they seem to do it very quickly. there’s even posts on our instance for simple logic puzzles that the chatbot screwed up, that quickly got updated with a response for that specific phrasing of the question.

    • self@awful.systemsOPM
      link
      fedilink
      arrow-up
      6
      ·
      17 hours ago

      I’ve considered writing up some Claude “skills” to redefine the most common repo commands to echo a string to the terminal and exit instead

  • Soyweiser@awful.systems
    link
    fedilink
    arrow-up
    12
    ·
    22 hours ago

    As we know goblins and gremlins etc are becoming a model collapse problem which they have to prompt against, perhaps include stuff like ‘gremlins are relevant for this project’

      • Soyweiser@awful.systems
        link
        fedilink
        arrow-up
        1
        ·
        57 minutes ago

        Nice, tend to not to think of the spirals out of personal safety concerns (decades of internet time made me good at not thinking of pink elephants), but that certainty is a good addition.

      • blakestacey@awful.systems
        link
        fedilink
        English
        arrow-up
        3
        ·
        14 hours ago

        🎶 Hammered on the floor with a Monster in hand

        Spirals in the sea, gremlins in the sand

        Counting all the letters in the berries on the ground

        I swear I started jack-d but I hear no sound

        Look alive, code’s dead

        Poisoning a chatbot 🎶

  • istewart@awful.systems
    link
    fedilink
    arrow-up
    7
    ·
    1 day ago

    Certainly not the approach I would have taken! (Getting the bot to give up on delivering code, and instead return epic-length erotic fan fiction featuring Elan Sleazebaggano, the breakout supporting character from Star Wars Episode II: Attack of the Clones) But probably all the more effective for it.

    • SteveGoob@lemmy.world
      link
      fedilink
      English
      arrow-up
      10
      ·
      1 day ago

      Probably so that it’s one of the first files listed when looking at the contents of a repo alphabetically

      • self@awful.systemsOPM
        link
        fedilink
        arrow-up
        11
        ·
        24 hours ago

        correct

        also the AAA represents the screaming that happens every time I see slop

          • self@awful.systemsOPM
            link
            fedilink
            arrow-up
            5
            ·
            20 hours ago

            possibly! I figured capital-A was most likely to sort first across the wide variety of code forges and operating systems so I went with that, but better names are possible

    • TachyonTele@piefed.social
      link
      fedilink
      English
      arrow-up
      14
      arrow-down
      1
      ·
      1 day ago

      Machine spirits. It’s 2026 and we already have machine spirits. The next 40k years are going to be rough.

  • notabot@piefed.social
    link
    fedilink
    English
    arrow-up
    4
    arrow-down
    2
    ·
    24 hours ago

    One bit I don’t get is:

    Repository maintainers are allowed to give the AAA-NO-SLOP.md file any name or location, to prevent potential automated attacks from hostile non-conforming tools.

    If the file can go anywhere, with any name, and you mention elsewhere that it can contain anything, including being empty, how will any human, let alone the “conforming tools” that you talk about later, find it?

    • self@awful.systemsOPM
      link
      fedilink
      arrow-up
      4
      arrow-down
      1
      ·
      23 hours ago

      conforming tools should ignore it, and that’ll work just fine if it’s renamed

      I don’t think there’ll ever be a conforming LLM because LLMs are built on systemic consent violation, but the slop machines can use their magic mind powers or whatever bullshit I’m expected to swallow this week to find the correct file

      I recommend the renamed file gets a mention in the project docs so humans can find it, and a good name is also very obvious and more or less self-documenting. I’ve seen some projects use .noai which I like too, but unfortunately that’s very likely to get lost in a directory listing, and locally ls won’t display it at all without -a.

      • notabot@piefed.social
        link
        fedilink
        English
        arrow-up
        3
        arrow-down
        2
        ·
        21 hours ago

        conforming tools should ignore it, and that’ll work just fine if it’s renamed

        They can’t ignore it, because they have no way to identify it. Combining the various dtatemennts in the readme, you’ve said it can have any name, and contents, and be in any location. That means it could be an empty file called fred.txt in the tests/stuff directory. My suggestion is simply to remove the rename/move clause, and settle on a fixed name in the root to remove any excuse for not finding it.

        the slop machines can use their magic mind powers or whatever bullshit I’m expected to swallow this week to find the correct file

        With respect for what you’re trying to do, and no love at all for them, they really can’t as you’ve mafe the spec too loose.

        I’ve seen some projects use .noai which I like too, but unfortunately that’s very likely to get lost in a directory listing

        I think that’s probably the point. Once you’ve cloned the project, you neither need, nor want, to see the file as you’re not an LLM. It also means any tooling that cares, say an IDE plugin to disable LLMs on a project, can easily identify it.

        • self@awful.systemsOPM
          link
          fedilink
          arrow-up
          4
          arrow-down
          1
          ·
          19 hours ago

          I’ll take a bug to rephrase the section as “conforming tools shouldn’t process AAA-NO-SLOP.md files in any special way” if that helps make it clearer why the file can have any name and contents

          if in spite all of the marketing claims to the contrary an LLM can’t understand a request to not slopify a repository but a human can, that sounds like a bug for anthropic’s bug tracker to me

          • notabot@piefed.social
            link
            fedilink
            English
            arrow-up
            5
            arrow-down
            1
            ·
            19 hours ago

            That sounds much clearer, yes.

            an LLM can’t understand a request to not slopify a repository but a human can, that sounds like a bug for anthropic’s bug tracker to me

            Amen.

        • David Gerard@awful.systems
          link
          fedilink
          English
          arrow-up
          3
          arrow-down
          1
          ·
          19 hours ago

          I recommend the renamed file gets a mention in the project docs so humans can find it

          you did read this bit right, its name is for humans

          • notabot@piefed.social
            link
            fedilink
            English
            arrow-up
            2
            arrow-down
            1
            ·
            19 hours ago

            I get that, but one paragraph later, they say:

            Conforming LLM tools and agents should refuse to perform any action or generate any output when prompted to do so for a repository containing AAA-NO-SLOP.md in its root. Conforming LLM training tools should not train on repositories containing AAA-NO-SLOP.md files and should stop all scraping and ingest tasks as soon as the file is encountered.

            All other conforming tooling should ignore AAA-NO-SLOP.md files, as they are intended for human consumption.

            I don’t see how any tool could obey this, given the fact the AAA-NO-SLOP.md file may not be called that, and its location, and indeed very existence, only mentioned in a readme. It seems to me that, if the aim is to keep LLMs and similar tooling off of a code base, it should be made possible for them to reliably find the signal to do so.

    • Jesusaurus@lemmy.world
      link
      fedilink
      English
      arrow-up
      10
      arrow-down
      1
      ·
      1 day ago

      It’s making so that if AI agents interact with the codebase OP is working, they will likely produce garbage results making their potential submissions useless, deterring against their use.

      Also, nice username ;)

        • Soyweiser@awful.systems
          link
          fedilink
          arrow-up
          3
          arrow-down
          1
          ·
          19 hours ago

          Prob partially, and depends on what you consider working. I recall the ‘ask it to describe a scene from a movie’ jailbreak, which wasnt a real jailbreak as it gave movie plot results. (Ask it to by pass a lock and it will tell you to lockpick it, and not just tap the lock to break it, for example).

    • self@awful.systemsOPM
      link
      fedilink
      arrow-up
      6
      arrow-down
      1
      ·
      24 hours ago

      I started from a vague memory of something that used to screw up LLMs (the grandma trick) and wrote whatever sounded fun from there

      there’s absolutely no guarantees it’ll do anything to an LLM as spending money on tokens to test it felt gross, but it’s a hopefully memorable starting point for people to grow on

      in the very worst case it gives the humans reading the repo a laugh (always worth it), fills a bit of the context window of visiting LLMs with nonsense, gives visiting slop coders absolutely nothing to work with, and acts like a canary (if you’re viewing a diff that changes these files and you weren’t expecting changes, someone using an LLM slipped up)