Considérant en fait et en droit :
1.
1.1. Par arrêt du 9 janvier 2015, l'Autorité supérieure de surveillance en matière de poursuites et faillites du Tribunal cantonal du canton de Neuchâtel (ci-après: ASSLP) a admis une première plainte déposée par A._ (ci-après: poursuivi) dans le cadre de la poursuite n° xxxx, car l'Office des poursuites de La Chaux-de-Fonds (ci-après: Office) avait procédé - à l'occasion d'une autre saisie - à des saisies mensuelles de son salaire sans lui avoir préalablement notifié un avis ad hoc; l'Office a été invité à notifier un nouvel avis de saisie, l'arrêt précisant que celles exécutées dès le mois d'août 2014 étaient pour l'heure dépourvues de cause valable.
1.2. Le 14 janvier 2015, l'Office a adressé à nouveau au poursuivi l'avis relatif à la saisie de salaire qui avait été exécutée le 11 mars 2014, ainsi que la fiche de calcul ayant permis de fixer son minimum vital à 2'860 fr. par mois dès le 1er juillet 2014, la saisie portant alors sur toute somme - retenues légales déduites - dépassant ce montant, de même que sur la totalité du 13e salaire.
Par courrier mis à la poste le 21 janvier 2015, le poursuivi a informé l'Office qu'il contestait la validité de la nouvelle notification et indiqué qu'il convenait, pour respecter l'arrêt du 9 janvier 2015, de lui restituer toutes les sommes saisies sur ces derniers salaires ainsi que son 13e salaire, puis de reprendre la procédure de saisie; à défaut, l'Office était invité à traiter son courrier comme une plainte visant implicitement à suspendre les saisies en cours et à restituer les montants illicitement saisis. Trois jours plus tard, l'Office a transmis ladite lettre à l'Autorité inférieure de surveillance LP (ci-après: AISLP).
Statuant le 9 septembre 2015, l'AISLP a rejeté la plainte du poursuivi; elle a considéré que l'Office, en adressant une nouvelle fois l'avis de saisie de salaire et la fiche de calcul du minimum vital, s'était conformé à l'arrêt du 9 janvier 2015. Par arrêt du 28 octobre 2015, l'ASSLP, se prononçant sur le fond du litige avec une argumentation circonstanciée, a rejeté le recours du poursuivi contre cette décision.
2.
Par acte du 9 novembre 2015, le poursuivi forme un recours en matière civile, assorti d'une requête d'effet suspensif. Il demande au Tribunal fédéral d'annuler l'arrêt de l'autorité cantonale, de dire que l'Office doit lui restituer sans délai le montant saisi sans cause valable dès le mois d'août 2014 et de rendre une décision sur le fond " en lieu et place de l'autorité de poursuite "; par courrier du 20 novembre 2015, il sollicite en outre le bénéfice de l'assistance judiciaire.
Par ordonnance du 24 novembre 2015, le Président de la IIe Cour de droit civil a admis la requête d'effet suspensif en ce sens que l'Office est invité à ne pas distribuer aux créanciers les montants saisis avant l'issue de la procédure devant le Tribunal fédéral.
Des observations sur le fond n'ont pas été requises.
3.
Le recours a été déposé dans le délai légal (<ref-law>) à l'encontre d'une décision finale (<ref-law>; <ref-ruling> consid. 1.2 et la jurisprudence citée) rendue en matière de poursuite pour dettes (<ref-law>, en relation avec l'<ref-law>) par une autorité de surveillance ayant statué sur recours en dernière instance cantonale (art. 75 al. 1 et 2 LTF); il est recevable indépendamment de la valeur litigieuse (art. 74 al. 2 let. c LTF); le plaignant, qui a été débouté par la juridiction précédente, a qualité pour recourir (<ref-law>).
4.
Le recours en matière civile peut être formé pour violation du droit fédéral (<ref-law>), notion qui englobe les droits constitutionnels (<ref-ruling> consid. 2.1; <ref-ruling> consid. 2.4). Le Tribunal fédéral applique le droit d'office (<ref-law>); il n'est pas lié par l'argumentation des parties (<ref-ruling> consid. 1.3) et apprécie librement la portée juridique des faits. Cependant, vu l'obligation de motiver qui incombe au recourant (<ref-law>), il n'est pas tenu de traiter, à l'instar d'un juge de première instance, toutes les questions juridiques pouvant se poser, mais uniquement celles qui sont soulevées devant lui (<ref-ruling> consid. 2 et 115 consid. 2, avec les arrêts cités).
Pour satisfaire à son obligation de motiver, le recourant doit discuter les motifs de la décision entreprise et exposer succinctement en quoi l'autorité précédente aurait méconnu le droit; à cet égard, il suffit que, à la lecture de son argumentation, le Tribunal fédéral puisse comprendre aisément quelles règles auraient été violées (<ref-ruling> consid. 2 et les arrêts cités). Le recourant doit développer ses moyens dans l'acte de recours lui-même, un renvoi à d'autres écritures ou à des pièces n'étant pas admis; en particulier, il ne peut se contenter de reprendre presque mot pour mot l'argumentation présentée devant la juridiction cantonale (<ref-ruling> consid. 2; <ref-ruling> consid. 2.1 et 2.3).
5.
En l'occurrence, le présent recours ne répond manifestement pas aux exigences légales de motivation. En effet, le recourant ne s'en prend pas aux considérants de l'arrêt attaqué, mais se " limite à reprendre les arguments et motifs " d'une précédente écriture du 1er décembre 2014, qu'il reprend presque mot pour mot dans son recours du 25 septembre 2015 adressé à l'ASSLP.
6.
Vu ce qui précède, le recours doit être déclaré irrecevable. Les conclusions du recourant étaient d'emblée dénuées de chances de succès, ce qui entraîne le rejet de sa requête d'assistance judiciaire (<ref-law>) ainsi que sa condamnation aux frais de la procédure fédérale (<ref-law>).


Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est irrecevable.
2.
La requête d'assistance judiciaire du recourant est rejetée.
3.
Les frais judiciaires, arrêtés à 300 fr., sont mis à la charge du recourant.
4.
Le présent arrêt est communiqué au recourant, à l'Office des poursuites de La Chaux-de-Fonds et à l'Autorité supérieure de surveillance en matière de poursuites et faillites du Tribunal cantonal du canton de Neuchâtel.
Lausanne, le 18 janvier 2016
Au nom de la IIe Cour de droit civil
du Tribunal fédéral suisse
Le Président : von Werdt
Le Greffier : Braconi