Faits : A. A.a. Par jugement du 13 janvier 2015, le Tribunal correctionnel de l'arrondissement de la Broye et du Nord vaudois a constaté que X.X._ s'était rendu coupable de tentative de lésions corporelles graves, lésions corporelles simples, lésions corporelles simples qualifiées, agression, violence ou menace contre les autorités et les fonctionnaires, menaces et contravention à la LStup. En revanche, il l'a libéré de l'accusation de lésions corporelles simples et d'agression sur la personne de A._ pour des faits survenus le 9 février 2014. X.X._ a été condamné à trente mois de peine privative de liberté et à 300 fr. d'amende. Cette peine était partiellement complémentaire à celle prononcée le 11 octobre 2013 par le Tribunal des mineurs du canton de Vaud. A.b. Les faits reprochés à X.X._ sont les suivants: Le samedi 13 avril 2013, vers 22h30, X.X._, B._ et C._ se sont rendus au domicile de D._ où un groupe d'amis s'était réuni. Après s'être vus refuser l'entrée dans la villa, C._ a saisi un des invités, qui leur avait poliment demander de s'en aller, et l'a tiré vers l'extérieur. B._ lui a asséné un coup de poing au visage. Alors que la victime avait chuté, les trois comparses l'ont frappé à coups de pied et de poing sur le corps et la tête. X.X._ a ensuite apposé la pointe tranchante d'une lampe de jardin brisée sur la gorge d'un autre invité qui tentait de séparer les antagonistes, l'entaillant légèrement à cet endroit. Puis, il a continué à frapper la première victime avec la partie tranchante du pied de la lampe au niveau du visage, notamment de l'oeil droit. Au cours de l'incident, X.X._ et ses comparses ont proféré des menaces de mort à l'encontre des personnes présentes. A la suite d'une intervention de la police, ils sont revenus causer du trouble autour de la villa, notamment en jetant des projectiles. Le samedi 1 er juin 2013, peu après 2h00, X.X._ et E._ ont décidé de suivre F._, à la sortie d'un bar, dans le but de lui soustraire une boîte contenant de la drogue. Ils se sont mis à le chambrer, notamment en s'emparant de son chapeau. Après avoir vainement insisté pour qu'ils le lui restituent, F._ s'est emparé d'un couteau et leur a dit que " ça suffisait ". Alors qu'il tentait de rejoindre les deux comparses qui s'étaient entre-temps déplacés, ces derniers se sont emparés de cailloux sur le ballast des voies ferrées et les ont lancés dans sa direction. Une fois le jet de pierres terminé, F._, qui avait pris la fuite, est revenu vers eux pour essayer une nouvelle fois de récupérer son chapeau. Lorsqu'il s'est trouvé à quelques mètres d'eux, il a été atteint par un caillou lancé subitement par X.X._. Les deux comparses se sont ensuite lancés à la poursuite de F._, qui décida finalement de les affronter. E._ lui asséna un coup de poing, qui le fit chuter. Pendant que celui-ci le fouillait, X.X._ lui donna des coups de pieds au niveau de la tête et du torse, alors qu'il était sans connaissance. Les deux comparses se sont ensuite enfuis malgré les injonctions de policiers en patrouille qui sont intervenus. Le samedi 19 octobre 2013, à 6h40, une patrouille de police s'est rendue au domicile de G.X._ (la mère de X.X._) dans le contexte d'un épisode de violences domestiques. A cette occasion, le fils de son compagnon s'est montré agressif à l'encontre des policiers. Voulant empêcher l'interpellation de celui-ci, X.X._ a agrippé des agents de police par la veste, a appliqué sa main au niveau du cou de l'un d'eux et l'a repoussé en arrière. Après avoir été maîtrisé, il a traité les policiers de " fils de pute ". Le dimanche 1 er décembre 2013, vers 4h00 du matin, X.X._ est venu prêter main forte à son frère, lequel s'en prenait physiquement à H._ au motif que ce dernier aurait adopté une attitude envers leur mère qui ne lui convenait pas. X.X._ lui a asséné un coup de poing au visage, le faisant tomber à terre, puis s'est agenouillé et lui a donné de nombreux autres coups toujours au visage, pendant que son frère distribuait des coups de pieds sur le corps. Enfin, depuis le 11 octobre 2013, date de sa dernière condamnation pour ce motif, jusqu'au 5 janvier 2015, X.X._ a régulièrement consommé du cannabis. B. B.a. X.X._ a formé appel contre le jugement du 13 janvier 2015. Il contestait la quotité de la peine et le refus du sursis. Le Ministère public a déclaré former un appel joint. Il concluait à ce que X.X._ soit reconnu coupable de l'accusation d'agression dont il avait été acquitté et a requis l'augmentation de la peine privative de liberté à trente-six mois. B.b. Statuant le 10 septembre 2015, la Cour d'appel pénale du Tribunal cantonal du canton de Vaud a rejeté l'appel de X.X._ et a admis celui du Ministère public. Elle a fixé la peine privative de liberté à trente-six mois et confirmé le dispositif du jugement de première instance pour le surplus. En résumé, la nouvelle infraction retenue par la juridiction cantonale repose sur l'état de fait suivant: Le dimanche 9 février 2014, vers 2h30, A._ et les camarades qui l'accompagnaient ont été abordés par un groupe de quatres personnes au comportement agressif - dont X.X._ et C._ - alors qu'ils attendaient un taxi. A._ a dû remettre son téléphone cellulaire à l'un d'eux, qui l'a projeté au sol sans raison. Un peu plus tard, X.X._ et ses acolytes ont rejoint le groupe qui s'était déplacé. C._ a frappé A._ par surprise derrière la nuque, ce qui l'a fait tomber. X.X._ et lui l'ont alors roué de coups de pied sur le corps et la tête. L'arrivée de la police a mis en fuite les agresseurs, qui n'ont pu être interpellés sur le champ. C. X.X._ interjette un recours en matière pénale contre le jugement du 10 septembre 2015. Il conclut à sa libération du chef de prévention d'agression sur la personne de A._ et à sa condamnation à une peine privative de liberté de vingt-quatre mois avec sursis pendant cinq ans, subsidiairement de trente mois dont douze mois ferme et le solde avec sursis pendant trois ans. Plus subsidiairement, il conclut à la réforme du jugement attaqué en ce sens que la peine privative de liberté soit assortie du sursis partiel, la partie ferme à exécuter correspondant à douze mois. Encore plus subsidiairement, il demande le renvoi de la cause à l'autorité précédente pour nouvelle décision. En outre, il requiert le bénéfice de l'assistance judiciaire.