Compare commits

...

3 Commits

Author SHA1 Message Date
Alex Verkhovsky 665d6446d6
Merge fbde5a0cd4 into 97a533e298 2026-02-25 14:43:25 +08: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
Brian Madison b83ccc71b9 docs(changelog): add 6.0.3 release notes 2026-02-23 17:12:12 -06:00
4 changed files with 14 additions and 8 deletions

View File

@ -1,5 +1,13 @@
# Changelog
## [6.0.3]
### 🐛 Bug Fixes
* Fix workflow descriptions to use proper quotes so they format better in skill conversion and don't break yaml front matter
---
## [6.0.2]
### 🎁 Features

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.