Faits :
A.
A.a. A._ SA, en qualité de maître de l'ouvrage, et B._ SA, en tant qu'entrepreneur général, ont conclu le 25 juin 2004 un contrat d'entreprise générale portant sur la construction de 21 villas dans la commune de U._ (VD). Les parties ont intégré à cette convention les «Conditions générales pour le contrat d'entreprise générale» établies par l'Association suisse des entrepreneurs généraux, ainsi que la norme SIA 118, à titre subsidiaire.
Selon l'art. 2.1.3 du contrat, « les plans de l'architecte selon liste annexée» font partie intégrante du contrat.
L'art. 3.5 a la teneur suivante:
«S i la date à laquelle l'ouvrage est prêt à l'utilisation est retardée par des circonstances imputables à l'entrepreneur général, il est redevable au maître de l'ouvrage de tous les frais et indemnités réclamés par le ou les futurs propriétaires. »
Le prix de l'ouvrage a été fixé de façon forfaitaire à 7'383'112 fr., toutes taxes comprises.
Des avenants et devis pour des travaux complémentaires ont été établis. En tenant compte de ces documents (y compris un devis contesté de 65'891 fr. 50), le prix forfaitaire global de la construction s'élevait à 8'213'912 fr. 60.
A.b. Les procès-verbaux de réception des villas ont été dressés entre le 15 juillet 2005 et le 20 février 2006.
A.c. Le 28 juin 2006, le maître a écrit à l'entrepreneur général (ci-après: l'entrepreneur) qu'il subsistait un solde impayé de 250'000 fr., dont il ne procéderait au paiement qu'après règlement définitif des différents points énumérés, dont l'«obtention des plans de recoupement des villas et des canalisations dans le terrain».
L'entrepreneur s'est déterminé sur ces demandes par courrier du 17 août 2006.
Le 30 mars 2007, le maître a confirmé à l'entrepreneur qu'il faisait procéder au virement de 50'000 fr., en précisant que «le montant restant dû s'éleva[i]t dès lors à fr. 200'000.00».
A.d. Le 12 juin 2007, la faillite de l'entrepreneur a été prononcée.
A.e. Le 17 décembre 2009, celui-ci a réclamé au maître le paiement de 286'131 fr. comme solde du prix total de 8'213'912 fr. 55.
Par courriers des 20 avril 2010 et 24 juin 2010, le maître a informé l'entrepreneur qu'il produisait dans sa faillite des créances pour un total de 484'706 fr. 55, correspondant à des moins-values et défauts.
B.
B.a. Le 28 juillet 2011, l'entrepreneur B._ SA en liquidation a saisi la Chambre patrimoniale du canton de Vaud d'une requête de conciliation contre le maître A._ SA. L'entrepreneur a ensuite déposé une demande le 2 décembre 2011 contenant des conclusions en paiement de 286'131 fr. plus intérêts.
Le maître de l'ouvrage a conclu au rejet de l'action. Il a opposé en compensation des créances pour un total de 484'706 fr. 55.
B.b. Un architecte a été désigné comme expert judiciaire. Dans son rapport du 22 juillet 2014, il a retenu des créances en faveur du maître à hauteur de 352'168 fr. 45. Les parties n'ont pas demandé de complément.
B.c. Par jugement du 22 janvier 2016, la Chambre patrimoniale a condamné le maître à payer à l'entrepreneur 235'562 fr. 30 plus intérêts à 5% dès le 1er février 2010, sous déduction de 86'115 fr. 95, valeur échue.
La Chambre a considéré que les parties étaient liées par un contrat d'entreprise générale, soit un contrat d'entreprise au sens des art. 363 ss CO. Elle a constaté que sur le prix total de l'ouvrage tel qu'il ressortait du contrat, des avenants et des devis complémentaires, seul était litigieux le montant de 65'891 fr. 50 afférent au devis complémentaire n° 6. Rien n'indiquait que ce devis aurait été accepté dans son entier. Le maître admettait tout au plus un montant de 15'322 fr. 80, qui devait dès lors être retenu. Le prix total de l'ouvrage s'élevait donc à 8'163'343 fr. 85. Après déduction des acomptes versés (7'927'781 fr. 55), il subsistait un solde impayé de 235'562 fr. 30.
Le maître de l'ouvrage opposait en compensation des créances pour un total de 484'706 fr. 55. La Chambre patrimoniale a tout au plus retenu une créance de 12'750 fr. pour des plans de recoupement qui avaient été facturés au maître mais ne lui avaient jamais été remis; elle a également admis une créance de 73'365 fr. 95 fondée sur l'art. 3.5 du contrat d'entreprise, liée à l'indemnisation des acquéreurs pour le retard dans la livraison des villas.
B.d. Par arrêt du 26 juin 2017, le Tribunal cantonal vaudois a rejeté l'appel principal formé par le maître de l'ouvrage et a partiellement admis l'appel joint de l'entrepreneur. Statuant à nouveau, il a condamné le maître à verser à l'entrepreneur 235'562 fr. 30 plus intérêts à 5% l'an dès le 1er février 2010.
Le Tribunal cantonal a confirmé le montant du solde que le maître devait encore payer sur le prix total de l'ouvrage. Il n'a retenu aucune des créances opposées en compensation.
C.
Le maître a saisi le Tribunal fédéral d'un recours en matière civile à l'issue duquel il requiert d'être condamné à payer à l'entrepreneur 235'562 fr. 30 plus intérêts dès le 1er février 2010, sous déduction de 245'507 fr. 55, valeur échue, à titre de compensation. Il a en outre sollicité l'effet suspensif.
L'entrepreneur a conclu au rejet du recours dans la mesure de sa recevabilité. L'autorité précédente s'est référée à son arrêt.
Par ordonnance du 8 septembre 2017, la présidente de la cour de céans a accordé l'effet suspensif.
Le maître a déposé une réplique, dont l'entrepreneur a précisé qu'elle n'appelait aucune remarque de sa part.
Considérant en droit :
1.
Les conditions de recevabilité du recours en matière civile sont réalisées sur le principe, notamment celles afférentes au délai (art. 100 al. 1 LTF en lien avec les art. 45 al. 1 et art. 46 al. 1 let. b LTF) et à la valeur litigieuse, qui excède nettement 30'000 fr. (art. 74 al. 1 let. b LTF). L'examen de la recevabilité des griefs en particulier est réservé.
2.
2.1. Le recours peut être formé pour violation du droit fédéral, notion qui inclut le droit constitutionnel (art. 95 let. a LTF; ATF 135 III 670 consid. 1.4).
L'autorité de céans applique le droit d'office (art. 106 al. 1 LTF). Eu égard, toutefois, à l'exigence de motivation qu'impose l'art. 42 al. 2 LTF, sous peine d'irrecevabilité (art. 108 al. 1 let. b LTF), elle n'examine d'ordinaire que les griefs invoqués, sauf en cas d'erreurs juridiques manifestes (ATF 140 III 115 consid. 2 p. 116; 137 III 580 consid. 1.3). Une exigence de motivation accrue prévaut pour la violation des droits constitutionnels tels que la prohibition de l'arbitraire (art. 9 Cst.). Selon le principe d'allégation, le recourant doit indiquer quel droit ou principe constitutionnel a été violé, en expliquant de façon circonstanciée en quoi consiste la violation (art. 106 al. 2 LTF; ATF 134 II 244 consid. 2.2; 133 II 396 consid. 3.2).
2.2. Le Tribunal fédéral statue sur la base des faits établis par l'autorité précédente (art. 105 al. 1 LTF). Il ne peut rectifier ou compléter les constatations de l'autorité précédente que si elles sont manifestement inexactes ou découlent d'une violation du droit au sens de l'art. 95 LTF (art. 105 al. 2 LTF). «Manifestement inexactes» signifie ici «arbitraires» au sens de l'art. 9 Cst. (ATF 140 III 115 consid. 2 p. 117; 135 III 397 consid. 1.5).
La critique de l'état de fait retenu est soumise au principe strict de l'allégation évoqué ci-dessus (ATF 140 III 264 consid. 2.3 p. 266 et les références). La partie qui entend attaquer les faits constatés par l'autorité précédente doit donc expliquer clairement et de manière circonstanciée en quoi ces conditions seraient réalisées (ATF 140 III 16 consid. 1.3.1 p. 18 et les références).
3.
Le maître prétend tout d'abord opposer en compensation le montant de 12'750 fr.
3.1. Le maître a allégué que l'entrepreneur lui avait facturé 12'750 fr. pour des «plans de recoupement» relatifs aux différentes villas, plans qui n'auraient jamais été réalisés ni livrés, contrairement à ce que prévoyait le contrat d'entreprise générale et ses avenants.
L'expert a expliqué que « dans le cadre d'un mandat d'architecte faisant référence, pour les prestations à remplir et pour le calcul des honoraires, au 'Règlement SIA 102/2003'», les plans de révision étaient dus au maître de l'ouvrage «comme précisé sous chiffre 4.5 SIA 102/2003 'Dossier de l'ouvrage'». En l'occurrence, l'annexe 5 du contrat d'entreprise générale renvoyait précisément à la norme SIA 102/2003. L'expert a ajouté que la terminologie «plans de recoupement» lui échappait, mais qu'il pouvait assimiler ce terme à celui de «révision» en référence à la norme SIA 102/2003. Comme les plans de révision n'avaient jamais été produits, il en concluait que le montant de 12'750 fr. n'était pas dû par le maître.
Pour sa part, la Cour d'appel a constaté que l'expression «plans de recoupement» ne ressortait d'aucun document contractuel et avait été utilisée exclusivement par le maître de l'ouvrage. Cette notion n'avait pas été comprise par l'expert, qui l'avait assimilée à des plans de révision sans y apporter une quelconque justification. Or, le montant litigieux correspondait en réalité à la rubrique « dessins (électricité + architecte + héliographies) » des 21 récapitulatifs de travaux complémentaires concernant chaque villa (pièce 136), dont 10 comportaient la signature du représentant du maître assortie de la mention «bon pour accord». Du moment que la remise des dessins en question n'avait pas été convenue et que la rubrique «dessins» avait été expressément admise ou était demeurée incontestée pendant plusieurs années par le maître, il n'y avait pas matière à déduire 12'750 fr. de la facture finale de l'entrepreneur. Il était admissible de s'écarter de l'expertise sur une question qui n'était pas purement technique et que l'expert n'avait pas traitée de façon convaincante.
3.2. Le maître de l'ouvrage fait grief aux juges d'appel d'avoir versé dans l'arbitraire en écartant sans motifs les conclusions de l'expert sur des points techniques.
3.3. Selon l'arrêt attaqué, le montant litigieux se rapporte au poste «dessins (électricité + architecte + héliographies) » figurant dans les récapitulatifs de travaux complémentaires établis pour chaque villa, produits sous pièce 136. Le maître ne fournit aucune argumentation étayée susceptible de remettre en cause cette constatation, qui est au demeurant exempte d'arbitraire puisque les allégués topiques du maître (all. 131-134) renvoient effectivement à la pièce 136, dont le contenu est correctement cité dans l'arrêt attaqué.
Sur cette question non technique consistant à identifier à quelles prestations se rapporte le montant de 12'750 fr., les juges cantonaux pouvaient s'écarter sans arbitraire des conclusions de l'expert qui, confronté à l'expression « plans de recoupement» qu'il disait ne pas comprendre, ne s'est pas référé aux allégations et offres de preuves des parties mais a présupposé qu'il s'agissait des plans de révision prévus par la norme SIA 102, au motif que l'annexe 5 du contrat d'entreprise générale renvoyait à cette réglementation.
L'annexe en question se réfère effectivement à la norme SIA 102 dont elle reprend la terminologie, en particulier celle de l'art. 4.5 (dans sa teneur de 1984, et non de 2003). L'art. 4.5.2 relatif au «dossier de l'ouvrage terminé» vise à procurer au maître les «documents nécessaires à l'exploitation et à l'entretien de l'ouvrage ». Il prévoit en particulier la remise des principaux «dessins» de l'ouvrage («Pläne» ou «Baupläne» dans la version allemande) sur lesquels ont été reportées les modifications intervenues en cours de réalisation de l'ouvrage. On parle à cet égard de plans de révision (Revisionspläne; cf. CHRISTOPH LOCHER, Die Bauleitung, in: Die Planerverträge, STÖCKLI/SIEGENTHALER ÉD., 2013, n. 9.109).
Le poste «dessins (électricité + architecte + héliographies) » est une désignation générale utilisée dans 21 récapitulatifs de «travaux complémentaires» dont on ignore la nature précise (sous réserve de vagues informations données en pages 14 s. de l'arrêt attaqué), tout comme on ignore en quoi consistent concrètement les prestations rattachées à ce poste. A défaut de précisions supplémentaires, il n'était pas contraire au droit fédéral de ne pas assimiler ledit poste aux dessins visés par l'art. 4.5.2 de la norme SIA 102 (1984). Cette disposition ne saurait dès lors servir de fondement à la prétendue obligation de remettre des dessins au maître.
La cour cantonale a retenu que la remise de ces «dessins» n'avait pas été convenue par les parties, et le maître ne s'attache pas à démontrer le contraire en citant par exemple une disposition contractuelle topique. Sans de plus amples informations, il n'est pas possible de déterminer l'intérêt du maître à obtenir ces documents (nécessité pour l'exploitation ou l'entretien de l'ouvrage, par exemple) ni de compléter le contrat (cf. PETER GAUCH, Der Werkvertrag, 5e éd. 2011, n° 816). S'il est plutôt conséquent, le montant en jeu (12'750 fr.) ne saurait à lui seul fonder une obligation de remettre des documents dont on ignore le contenu précis, d'autant moins que le montant concerne 21 villas et doit être replacé dans la perspective du coût global.
Il s'ensuit le rejet du grief.
4.
Le maître se prétend ensuite titulaire d'une créance de 73'365 fr. 95 en remboursement des indemnités de retard qu'il a dû payer aux acquéreurs des villas.
4.1. Procédant à l'interprétation de l'art. 3.5 du contrat d'entreprise générale (cf. let. A.a supra), la Cour d'appel a constaté que «la volonté des parties était de faire correspondre les termes de 'frais et indemnités' à un dommage effectif». Les pièces produites ne prouvaient pas que les acheteurs aient effectivement subi un dommage consécutif au retard des travaux, ni même qu'ils aient réclamé les indemnités évoquées dans ces pièces. La Cour jugeait en outre peu probable que les acheteurs aient dû verser des annuités à la banque avant d'avoir pu emménager dans leur villa, et les montants alloués aux acheteurs étaient manifestement forfaitaires, ce qui corroborait l'absence de dommage concret. Les conclusions de l'expert n'étaient pas déterminantes dès lors qu'elles concernaient un point purement juridique. En bref, il n'y avait pas matière à retenir une créance de 73'365 fr. 95.
4.2. Le maître reproche à la Cour d'appel de s'être arbitrairement écartée de l'expertise sans motivation valable, d'avoir soutenu à tort que les pièces produites n'établissaient pas un dommage effectif des acheteurs et d'avoir arbitrairement tenu pour peu probable que les acquéreurs aient dû verser des annuités à la banque.
4.3. En constatant la volonté des parties exprimée à l'art. 3.5 du contrat d'entreprise, la cour cantonale a procédé à une interprétation subjective, opération qui relève du domaine des faits (ATF 142 III 239 consid. 5.2.1). Dans la mesure où le maître n'explique pas en quoi la constatation d'une telle volonté serait arbitraire, il n'y a pas à revenir sur l'interprétation retenue par l'autorité précédente.
Pour le reste, le maître ne présente pas d'argumentation circonstanciée assortie de références topiques aux pièces concernées démontrant en quoi l'appréciation des preuves opérée par les juges vaudois serait arbitraire, ce qui exclut d'entrer en matière. Enfin, la Cour d'appel a relevé à juste titre que l'expert ne s'était pas prononcé sur une question technique, de sorte qu'elle pouvait s'écarter sans arbitraire de ses conclusions.
Le grief doit être rejeté dans la mesure où il est recevable.
5.
Le maître oppose encore en compensation une prétendue créance de 78'691 fr. 10 pour le coût des travaux de retouches qu'il aurait dû faire exécuter en raison de l'inaction de l'entrepreneur.
5.1. La Cour d'appel a relevé que même si le régime conventionnel relatif à l'avis des défauts dérogeait sur certains points à l'art. 367 CO, la jurisprudence fédérale trouvait application, en ce sens que l'entrepreneur devait alléguer l'acceptation de l'ouvrage défectueux par le maître, auquel cas le maître devait prouver qu'il avait donné un avis des défauts en temps utile (réd.: cf. entre autres arrêt 4A_28/2017 du 28 juin 2017 consid. 4; ATF 107 II 50 consid. 2a et ATF 118 II 142 consid. 3a). En l'occurrence, l'entrepreneur avait fait l'allégation nécessaire. Pour sa part, le maître n'avait fait aucune allégation sur l'avis des défauts; il s'était contenté de donner suite à la réquisition de la partie adverse, qui demandait en substance la production de tout document établissant qu'il aurait contesté la bonne exécution de l'ouvrage. Le maître avait fourni une liasse de correspondances et procès-verbaux de réception des ouvrages dans lesquels il était question de défauts; par ailleurs, il avait produit des factures en lien avec les travaux de réfection dont il demandait le remboursement. Cependant, cette façon de procéder (production de pièces en vrac) ne permettait pas d'établir un lien entre les défauts dénoncés et ceux ayant fait l'objet de travaux de réfection facturés. Sans allégations précises, on ne pouvait exiger du juge, sauf à violer le principe de libre allégation (art. 55 CPC), qu'il procède à ce travail pour établir une éventuelle correspondance entre les avis de défaut et les factures de réfection, ni qu'il vérifie si ces avis avaient été donnés dans le délai de garantie de deux ans, ou immédiatement après leur découverte s'agissant de défauts cachés révélés après ce délai (art. 35.1 et 35.3 des Conditions générales pour le contrat d'entreprise).
5.2. Le maître reproche à l'autorité précédente d'avoir apprécié les preuves de façon arbitraire en considérant qu'il n'avait pas établi avoir signalé les défauts en temps utile, ignorant ainsi les conclusions de l'expert et les pièces 51a, 51b, 119, 120 et 124.
5.3. Le maître ne prétend pas que l'autorité précédente aurait contrevenu au droit fédéral - en particulier au CPC et à l'interdiction du formalisme excessif - en considérant que sa façon de procéder n'était pas admissible et que le juge n'avait pas à faire le tri dans les liasses de pièces produites pour tenter d'établir un lien entre les défauts signalés à l'entrepreneur et ceux ayant donné lieu à des travaux de réfection pour lesquels des factures avaient été produites. Par ailleurs, le maître ne soutient pas que l'expert aurait suppléé à ses carences et démontré, pièces à l'appui, que les défauts ayant occasionné des travaux auraient été signalés en temps utile. Cela suffit déjà à clore toute discussion.
Le grief doit être rejeté dans la mesure de sa recevabilité.
6.
Le maître oppose enfin en compensation une créance de 80'700 fr. 50, correspondant au coût des travaux de réfection des parquets qu'il aurait dû assumer en raison de l'inaction de l'entrepreneur.
6.1. La Cour d'appel a constaté que comme pour le grief précédent, le maître n'avait pas allégué avoir donné un avis des défauts en temps utile; de surcroît, aucune des pièces produites à l'appui des allégués concernant les travaux de réfection des parquets ne démontrait qu'un avis des défauts aurait été émis, ces pièces permettant uniquement de prouver le montant du dommage subi par le maître.
6.2. Le maître reproche derechef à la Cour d'appel d'avoir arbitrairement ignoré les conclusions de l'expertise et les pièces produites (142 à à 144), en particulier les 21 procès-verbaux valant avis des défauts (pièce 51b), qui comporteraient des mentions expresses aux taches des parquets, lesquelles auraient grandi avec le temps.
6.3. Dans le cadre du grief semblable traité au considérant précédent, les juges vaudois ont relevé, sans susciter de critiques du maître, qu'ils n'avaient pas à faire le tri dans la liasse de pièces produites. Au demeurant, dans l'optique d'une prétendue violation de l'interdiction d'arbitraire, la partie recourante ne saurait se contenter de renvoyer sans références plus précises à 21 procès-verbaux de réception des ouvrages censés contenir une mention de taches sur les parquets. Qui plus est, l'arrêt attaqué précise, sans s'attirer les critiques du maître, que la problématique engendrée par le dommage causé à certains revêtements de sols en parquet était intervenue beaucoup plus tard selon l'expert (arrêt, p. 15).
Le grief doit ainsi être rejeté dans la mesure de sa recevabilité.
7.
Au vu de ce qui précède, le recours dans son ensemble doit être rejeté dans la mesure où il est recevable. Partant, la partie recourante (soit le maître de l'ouvrage) supportera les frais de la présente procédure et versera à la partie intimée (soit l'entrepreneur général) une indemnité pour ses frais d'avocat (art. 66 al. 1 et art. 68 al. 1 et 2 LTF).
Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté dans la mesure où il est recevable.
2.
Les frais judiciaires, arrêtés à 6'000 fr., sont mis à la charge de la recourante.
3.
La recourante versera à l'intimée une indemnité de 7'000 fr. à titre de dépens.
4.
Le présent arrêt est communiqué aux mandataires des parties et à la Cour d'appel civile du Tribunal cantonal du canton de Vaud.
Lausanne, le 22 février 2018
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La présidente: Kiss
La greffière: Monti