Skip to main content
AIDiveForge AIDiveForge
🎭

Tone Translator

Writing & Editing · by AIDiveForge · Apr 20, 2026 · Intermediate

Adapt a message’s tone without changing facts, dates or commitments.

Get labeled variants and a factual preservation check.

Free · 2 KB · SKILL.md, instructions and example files. Provide the source message, intended audience and requested tones.

A worked example

A small example to try before using your own data.

Input

{
  "message": "The beta opens October 20. Access is limited to 50 teams. Apply by October 18.",
  "tones": [
    "formal",
    "friendly"
  ]
}

Expected result

Formal: Applications for the October 20 beta close October 18. Access is limited to 50 teams.
Friendly: Want to try the beta on October 20? Apply by October 18; there is room for 50 teams.

What to check: Both dates, the 50-team limit and the application action remain intact.

Limits: Tone changes do not authorize changes to factual, contractual or approved language.

Worked example included. Model-specific performance and vendor compatibility have not been benchmarked.

Installation options and other formats

Install this skill

An agent skill starts with SKILL.md. The ZIP also includes its examples and any helper scripts. Drop the file into your tool of choice — or pick a different format if you use Cursor, Windsurf, Copilot, or something else.

Download SKILL.md
python3 - <<'ADF_SKILL_INSTALL'
import hashlib, io, os, stat, tempfile, urllib.request, zipfile
from pathlib import Path, PurePosixPath
folder = "tone-translator"
root = Path(os.environ.get('ADF_SKILL_ROOT', str(Path.home() / '.claude' / 'skills'))).expanduser()
destination = root / folder
if destination.exists() or destination.is_symlink():
    raise SystemExit('An installation already exists. Back it up and merge the ZIP deliberately.')
root.mkdir(parents=True, exist_ok=True)
request = urllib.request.Request("https://aidiveforge.com/skill/tone-translator.zip", headers={'User-Agent': 'AIDiveForge-Resource-Installer/1.0 (+https://aidiveforge.com/skills/)'})
with urllib.request.urlopen(request, timeout=30) as response:
    data = response.read(8 * 1024 * 1024 + 1)
if len(data) > 8 * 1024 * 1024 or hashlib.sha256(data).hexdigest() != "7ab1363927afb6ca8affe37b0bcd3c93064b25a5897740dc23dd8666ed7e3df6":
    raise SystemExit('The download did not match this reviewed bundle. No files were installed.')
with zipfile.ZipFile(io.BytesIO(data)) as archive, tempfile.TemporaryDirectory(prefix='.adf-skill-', dir=root) as temporary:
    members = archive.infolist()
    if len(members) > 100 or sum(m.file_size for m in members) > 16 * 1024 * 1024:
        raise SystemExit('Unexpected archive size')
    for member in members:
        name = PurePosixPath(member.filename)
        if name.is_absolute() or '..' in name.parts or not name.parts or name.parts[0] != folder or '\\' in member.filename or stat.S_ISLNK(member.external_attr >> 16):
            raise SystemExit('Unsafe archive entry; nothing was installed')
        target = Path(temporary).joinpath(*name.parts)
        if member.is_dir():
            target.mkdir(parents=True, exist_ok=True)
        else:
            target.parent.mkdir(parents=True, exist_ok=True)
            with target.open('xb') as stream:
                stream.write(archive.read(member))
    staged = Path(temporary) / folder
    if not (staged / 'SKILL.md').is_file() or destination.exists() or destination.is_symlink():
        raise SystemExit('The skill could not be installed without replacing existing data')
    os.rename(staged, destination)
print('Installed the complete skill folder:', destination)
ADF_SKILL_INSTALL

Claude Code: ~/.claude/skills/tone-translator/SKILL.md. Codex: ~/.codex/skills/tone-translator/SKILL.md. Keep the complete ZIP folder when helper scripts are included.

🧠 Why it works

Both dates, the 50-team limit and the application action remain intact.

⚙️ How it works

  1. Extract the facts, dates, action, conditions and degree of certainty that must survive every variant.
  1. Define the requested tones through vocabulary and sentence structure, not new promises.
  1. Write each variant independently from the original so errors do not accumulate.
  1. Compare all variants with the fact list and flag any tone that conflicts with required wording.
  1. Return the variants with the same action and a short preservation check.

Description

Get labeled variants and a factual preservation check.

Provide the source message, intended audience and requested tones.

Limits: Tone changes do not authorize changes to factual, contractual or approved language.

Recommended Use

Tools and workflow packs this skill pairs well with. Forge picks are auto-generated from category + capability signals; Community picks are added by people who've used the pairing.

No matches yet. Be the first to suggest a pairing, or the Forge will populate suggestions as signals align.