My approach to option 'b' would be as follows:
1. Add a post-validate trigger to the 'alg' object firing for new activity logs of type 'INIT'. Both files in site\mods\majic.
zalg_triggers.mod
OBJECT alg {
TRIGGERS {
POST_VALIDATE zalgSetAssGrpDesc(id) 999
FILTER( EVENT("INSERT") && (type == "INIT") );
} ;
} ;
OBJECT alg {
FACTORY {
METHODS {
zalgSetAssGrpDesc(int) ;
} ;
} ;
} ;
zalgSetAssGrpDesc.spl
#define ZDEBUG 99
void alg::zalgSetAssGrpDesc(...)
{
// Run post_validate in the context of an Initial activity log 'alg' object,
// sets alg.description, recording the Assignee and Group.
string method; method = "alg::zalgSetAssGrpDesc";
// get info from ticket to store in log description
string assgnComboNm; assgnComboNm = "<not set>";
uuid assgnUuid;
string grpLastNm; grpLastNm = "<not set>";
uuid grpUuid;
// Get Assignee combo name
assgnUuid = (uuid)expand(format("&{'%s' = cr.persistent_id->assignee}", this.call_req_id));
if (!is_empty(assgnUuid)) assgnComboNm = (string)expand(format("&{U'%s' = cnt.id->combo_name}", (string)assgnUuid));
if (ZDEBUG > 0) logf(SIGNIFICANT, "%s, assignee is %s", method, assgnComboNm);
// Get Group last name
grpUuid = (uuid)expand(format("&{'%s' = cr.persistent_id->group}", this.call_req_id));
if (!is_empty(grpUuid)) grpLastNm = (string)expand(format("&{U'%s' = cnt.id->last_name}", (string)grpUuid));
if (ZDEBUG > 0) logf(SIGNIFICANT, "%s, group is %s", method, grpLastNm);
string theMsg;
sprintf(theMsg, "Initial assignee: %s, group: %s ",assgnComboNm, grpLastNm);
this.description = theMsg;
}
2. Restart Service Desk Manager service and create a new ticket.

Hope that helps.
Regards,
James