ForeverSkillManager keeps your action bars up to date for you, the way retail does by default.
New spells: when you learn a spell, it is placed in the first empty slot of a visible action bar. If every visible slot is full, you get a chat message instead.
Rank upgrades: when you learn a higher rank of a spell on your bars, the old rank is swapped for the new one in the same slot. Macros, items and other spells are never touched.
Combat safe: Blizzard blocks action bar changes in combat, so anything learned mid-fight is applied when combat ends.
Works with the default Blizzard action bars and Bartender4.
Commands: /fsm (or /fskills) opens the settings panel. /fsm sync catches up now by upgrading ranks and placing any known spell that is not on a bar. /fsm debug prints what the addon sees.
Settings: turn placement and rank upgrades on or off, choose which bars may receive new spells and the fill order, ignore specific spells, and choose how much it says in chat.
Source code and issues: https://github.com/lgulliver/ForeverSkillManager

