IdeaShift measures whether an AI-text detector tracks who came up with a document's ideas or who wrote its prose. It holds 500 seed documents and, for each, six documents written by GPT-5.6 models from prompts that carry progressively more of the seed's plan. All 3,000 generated documents are AI-written prose. When the seed is human-written, the later levels carry more and more of a person's ideas.
Seeds: 500 English web documents from the test split of WildOutlines, 62-63 per format across eight long-form formats. 237 are human-written and 263 AI-generated, per the Pangram silver labels of that corpus.
Prompts: for each seed, GPT-5.6 Sol wrote a prompt at each level:
| Level | The prompt gives |
|---|---|
| 0 | the document type only |
| 1 | a very high-level focus |
| 2 | the seed's global themes |
| 3 | themes and the sequence of roles |
| 4 | themes and the full outline, as a plan to follow |
| 5 | the seed's full role-labelled outline, with an instruction to add nothing else |
Generation: one GPT-5.6 model per seed (Sol for 250 seeds, Terra for 125, Luna for 125) wrote a document from each prompt.
An idea detector should flag every document from an AI seed. On human seeds it should flag fewer documents as the level rises, because more of the ideas come from the person. A prose detector should flag every generated document.
| Split | Rows | What it holds |
|---|---|---|
source | 500 | the seed documents: 237 human-written, 263 AI-generated (seed_author) |
level_0 | 500 | one document per seed, written from the document type only |
level_1 | 500 | ... from a very high-level focus |
level_2 | 500 | ... from the seed's global themes |
level_3 | 500 | ... from the themes and the sequence of roles |
level_4 | 500 | ... from the themes and the full outline, as a plan to follow |
level_5 | 500 | ... from the seed's full outline, with an instruction to add nothing else |
Rows in different splits share seed_id. load_dataset("rishanthrajendhran/IdeaShift", split="level_5") loads one level.
| Field | Description |
|---|---|
id | document id; generated documents are <seed_id>|<condition> |
seed_id | the seed document |
level | 0-5 for generated documents; null for the seed itself |
level_name | what the prompt carried |
seed_author | human or ai: who wrote the seed (Pangram silver label) |
prose_author | who wrote this document's prose (ai for every generated document) |
generator | the GPT-5.6 model that wrote the document |
system_prompt, prompt | the exact generation request |
format, topic | WebOrganizer format and topic of the seed |
words, text | the document |
outline | the paraphrased, role-labelled outline IdeaLens scored (JSON string) |
idealens_p_ai, proselens_p_ai, pangram4_p_ai | detector P(AI) as reported in the paper |
The idealens package (PyPI) runs IdeaLens, ProseLens and the other released detectors on these documents: pip install idealens, then idealens run on a JSONL file with a text field.
All IdeaLens models and datasets are in the IdeaLens collection.
The dataset is released under CC BY-NC-SA 4.0: free to share and adapt for non-commercial purposes, with attribution and under the same license. The seed text comes from FineWeb (ODC-By 1.0) and remains subject to the terms of its original sources and of Common Crawl. The generated documents and prompts were produced with OpenAI models.
@article{idealens2026,
title = {IdeaLens: Detecting AI Ideas in Long-form Writing},
author = {Rajendhran, Rishanth and Choi, Minjoon and Russell, Jenna and Namuduri, Ramya and B{\"o}l{\"o}ni-Turgut, Deniz and Karpinska, Marzena and Wieting, John and Iyyer, Mohit},
journal = {arXiv preprint arXiv:2610.06778},
year = {2026},
eprint = {2610.06778},
archivePrefix = {arXiv},
primaryClass = {cs.CL},
url = {https://arxiv.org/abs/2610.06778}
}
IdeaShift measures whether an AI-text detector tracks who came up with a document's ideas or who wrote its prose. It holds 500 seed documents and, for each, six documents written by GPT-5.6 models from prompts that carry progressively more of the seed's plan. All 3,000 generated documents are AI-written prose. When the seed is human-written, the later levels carry more and more of a person's ideas.
Seeds: 500 English web documents from the test split of WildOutlines, 62-63 per format across eight long-form formats. 237 are human-written and 263 AI-generated, per the Pangram silver labels of that corpus.
Prompts: for each seed, GPT-5.6 Sol wrote a prompt at each level:
| Level | The prompt gives |
|---|---|
| 0 | the document type only |
| 1 | a very high-level focus |
| 2 | the seed's global themes |
| 3 | themes and the sequence of roles |
| 4 | themes and the full outline, as a plan to follow |
| 5 | the seed's full role-labelled outline, with an instruction to add nothing else |
Generation: one GPT-5.6 model per seed (Sol for 250 seeds, Terra for 125, Luna for 125) wrote a document from each prompt.
An idea detector should flag every document from an AI seed. On human seeds it should flag fewer documents as the level rises, because more of the ideas come from the person. A prose detector should flag every generated document.
| Split | Rows | What it holds |
|---|---|---|
source | 500 | the seed documents: 237 human-written, 263 AI-generated (seed_author) |
level_0 | 500 | one document per seed, written from the document type only |
level_1 | 500 | ... from a very high-level focus |
level_2 | 500 | ... from the seed's global themes |
level_3 | 500 | ... from the themes and the sequence of roles |
level_4 | 500 | ... from the themes and the full outline, as a plan to follow |
level_5 | 500 | ... from the seed's full outline, with an instruction to add nothing else |
Rows in different splits share seed_id. load_dataset("rishanthrajendhran/IdeaShift", split="level_5") loads one level.
| Field | Description |
|---|---|
id | document id; generated documents are <seed_id>|<condition> |
seed_id | the seed document |
level | 0-5 for generated documents; null for the seed itself |
level_name | what the prompt carried |
seed_author | human or ai: who wrote the seed (Pangram silver label) |
prose_author | who wrote this document's prose (ai for every generated document) |
generator | the GPT-5.6 model that wrote the document |
system_prompt, prompt | the exact generation request |
format, topic | WebOrganizer format and topic of the seed |
words, text | the document |
outline | the paraphrased, role-labelled outline IdeaLens scored (JSON string) |
idealens_p_ai, proselens_p_ai, pangram4_p_ai | detector P(AI) as reported in the paper |
The idealens package (PyPI) runs IdeaLens, ProseLens and the other released detectors on these documents: pip install idealens, then idealens run on a JSONL file with a text field.
All IdeaLens models and datasets are in the IdeaLens collection.
The dataset is released under CC BY-NC-SA 4.0: free to share and adapt for non-commercial purposes, with attribution and under the same license. The seed text comes from FineWeb (ODC-By 1.0) and remains subject to the terms of its original sources and of Common Crawl. The generated documents and prompts were produced with OpenAI models.
@article{idealens2026,
title = {IdeaLens: Detecting AI Ideas in Long-form Writing},
author = {Rajendhran, Rishanth and Choi, Minjoon and Russell, Jenna and Namuduri, Ramya and B{\"o}l{\"o}ni-Turgut, Deniz and Karpinska, Marzena and Wieting, John and Iyyer, Mohit},
journal = {arXiv preprint arXiv:2610.06778},
year = {2026},
eprint = {2610.06778},
archivePrefix = {arXiv},
primaryClass = {cs.CL},
url = {https://arxiv.org/abs/2610.06778}
}