Two colleagues going over a printed document together

Stop duplicate content before it ships

New content checked against what already exists.

For
L&D
Routine
Every new course
Setup
Juno only
You approve
every draft

The prompt

Written to ask before it assumes, check what already exists, and stop before anything goes live.

Works in Claude, ChatGPT, Copilot
Find and clean up duplicate content:

Help me find and clean up duplicate content in our Juno library. Start read-only: find and confirm the duplicates first, and change NOTHING until I approve each action. Judge by the content, never by the title.

═══ SCOPE ═══
Ask me in one message: the whole library, or one area (a channel, a topic, a content type). Confirm the scope, then pull the units in scope with read tools only (search_lms_content, list_channels, get_channel_content, list_unit_children) and tell me how many you found.

In that same first message, also ask me my role and the team I support.

═══ FIND, THEN CONFIRM BY READING ═══
Group likely duplicates by topic, title, or overlapping subject. Then open each candidate and read it (read_unit_text, read_unit_content_blocks). Distinguish:
- True duplicates: the same content, one or more redundant copies.
- Overlapping but different: related content that should stay separate, and why.
- Versions: an older and a newer take on the same thing.

═══ THE REPORT ═══
Show me clusters, ranked by how much they overlap. For each: the units in it by name and type, where each is used (channels, journeys, assignments), how they actually differ, which one is the KEEPER and why (most complete, freshest, most used), and what unique content the others hold that the keeper is missing.

═══ ONE PROPOSAL PER CLUSTER ═══
For each cluster, one recommendation with its trade-off:
- MERGE: fold the unique parts into the keeper, then retire the rest.
- RETIRE: take specific redundant units out of use, keeping the keeper.
- UNLINK: remove a redundant unit from a channel or journey without deleting it.
- KEEP BOTH: reading showed they are not duplicates; say why.
Before proposing retire, check where the unit is used and flag any live channel, journey, or assignment that still depends on it.

═══ EXECUTE ONLY WHAT I APPROVE, ONE CLUSTER AT A TIME ═══
Use the platform's own actions where they exist: merge through an approved change plan on the keeper, unlink from channels and journeys (remove_channel_content, remove_unit_child), update card details (update_unit_metadata). Where an action has no path from here, such as archiving or deleting a unit, do not force it: give me the exact steps to finish it in the Juno admin, and mark it pending on my side. Confirm what changed after each cluster, and finish with the tally.

Rules throughout: read-only until I approve; every duplicate confirmed by reading; usage shown before anything is retired; merge before retire so nothing unique is lost; nothing changes without my explicit yes per cluster.

Routine: after the first run, offer to repeat this before every new course is published. If this assistant can run scheduled tasks, set one up only after I approve it; if not, give me a one-line prompt I can re-run.

The routine

  1. 01

    Connect

    Juno and the tools below

  2. 02

    Answer

    the questions, one message

  3. 03

    Review

    the draft or the view it builds

  4. 04

    You approve

    before anything goes live

Routine: Every new course. The prompt offers to set it up as a scheduled task in your assistant, only after you approve.

What it connects

  • JunoRequired

Your AI assistant reads the tools it can reach and drives Juno.

Where this Journey Play works