You may as well, to see if it jives with what I have.
Affli:
* Corruption
* Haunt
* Unstable Affliction
* Bane of Agony
* Shadow Embrace (IE: Shadow bolt if its not at 3 stacks)
* Drain Soul (Target HP less than 25%)
* Shadow Bolt or Drain Life
I would actually change the Affliction start to be:
* Corruption
* Unstable Affliction
* Bane of Agony
* Haunt
* Shadow Embrace (IE: Shadow bolt if its not at 3 stacks)
* Drain Soul (Target HP less than 25%)
* Shadow Bolt or Drain Life
* Lifetap when needed, etc, etc...
While doing Haunt earlier is nice to get the heal that it throws back at you a bit earlier in the fight, it is better used to do damage AND refresh corruption later in the spell stack once you have the rest of the DoT's applied.
The default pet of a Dotlock should be the Succubus at this point if people configure it as "Default".
Does HB allow you to check if something is a boss? If so, there are some logic call-outs that I'll do below. Below are all more advanced concepts that should be built into the Bot, but shouldn't be considered 100% needed to be useful. Just having the spell queue work will allow for most of the Affliction Lock's DPS to work.
Some logic bits:
1) The bot should never clip any of the DoTs unless you want to actually track ticks, especially with how Bane of Agony scales its damage. Corruption will probably never drop in a fight due to all the secondaries that refresh it, but refreshing UA and BoA should be the top priority. If it is a non-boss under 25% it should be just channeling Drain Soul even if they drop. If it is a boss even if it is under 25% it should refresh all dots just to be safe as that 25% could be a significant amount of health (so it should interrupt Drain Soul unless it is under like 5% to recast dots on a boss then restart Drain Soul).
2) Haunt should be refreshed whenever it drops after the DoTs are checked. Just like with the DoTs it isn't enough of a priority to stop Drain Soul on a non-boss, but it should certainly interrupt Drain Soul (unless under 5%) on a boss to recast Haunt.
3) Drain Life should be used before Shadow Bolt in all cases in the rotation when Shadow Embrace is at 3 stacks and the player's health isn't below the threshold. If it *is* below the set health threshold then Drain Life should be used no matter what to help keep the player alive.
4) Soul Swap should be used if the Player has the Glyph of Soul Swap used. This can be set by a toggle in the config (if you don't want to try and detect it automagically). With Glyph of Soul Swap, Soul Swap should be used in all situations where there are two or three targets in a fight.
5) In fights with four or more targets Seed of Corruption should be used. If the player has the Soul Burn: Seed of Corruption then they should always start with that at the beginning of an add fight (meaning once the bot realizes there are four targets and switches over to use SoC it should blow a SB:SoC on its next cast). Now the tricky part is figuring out when to cast it again as a Soul Burn while it's chain casting SoC normally. With a normal Corruption lasting 18 seconds without anything refreshing it and the fact that Dotlocks really don't have much else to use Soul Shards on, I'd recommend burning through them all in this situation if it lasts that long. So basically every 18 seconds when there are four or more adds on the bot's aggro list still it should cast a Soul Burn: Seed of Corruption. We're looking at close to a minute at that point and I doubt any non-boss >4 add fights would last that long.
6) One thing that should be different then thedrunk's logic is that when he was using SoC it would burn down all of the 'Lock's mana until out and then lifetap enough to keep casting SoC. It would continue to do this even when the adds were below 4. I would recommend having it swap back to "single target mode" once the number of adds has dropped back down below 4 so that way the bot can heal up, mana up, etc, as with the normal loop (or switch to using Soul Swap when the Glyph is used when there are 2-3 targets).
That's it assuming all of the other trigger variables that thedrunk added/modified still exist.