Compare commits

...

2 Commits

Author SHA1 Message Date
Alex Verkhovsky 536b845a09
Merge db0c06f9dc into 97a533e298 2026-02-24 18:47:47 -07:00
PinkyD 97a533e298
fix(installer): remove double-escaping of quotes in CSV manifest pipeline (#1746)
* fix(installer): remove double-escaping of quotes in CSV manifest pipeline

cleanForCSV() pre-escaped " to "" before storing in memory, then
escapeCsv() escaped again at CSV write time. After csv-parse round-trip
(which only un-escapes once), descriptions retained doubled quotes
instead of originals, corrupting generated output files.

Fix: remove the redundant quote escaping from cleanForCSV() since
escapeCsv() already handles CSV quoting correctly at write time.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(installer): use single quotes for description in Gemini workflow templates

Replace triple-quoted """{{description}}""" with single-quoted '{{description}}'
to avoid TOML escaping issues in Gemini workflow templates.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 18:43:33 -06:00
3 changed files with 6 additions and 8 deletions

View File

@ -24,16 +24,14 @@ class ManifestGenerator {
}
/**
* Clean text for CSV output by normalizing whitespace and escaping quotes
* Clean text for CSV output by normalizing whitespace.
* Note: Quote escaping is handled by escapeCsv() at write time.
* @param {string} text - Text to clean
* @returns {string} Cleaned text safe for CSV
* @returns {string} Cleaned text
*/
cleanForCSV(text) {
if (!text) return '';
return text
.trim()
.replaceAll(/\s+/g, ' ') // Normalize all whitespace (including newlines) to single space
.replaceAll('"', '""'); // Escape quotes for CSV
return text.trim().replaceAll(/\s+/g, ' '); // Normalize all whitespace (including newlines) to single space
}
/**

View File

@ -1,4 +1,4 @@
description = """{{description}}"""
description = '{{description}}'
prompt = """
Execute the BMAD '{{name}}' workflow.

View File

@ -1,4 +1,4 @@
description = """{{description}}"""
description = '{{description}}'
prompt = """
Execute the BMAD '{{name}}' workflow.