J
c25bc20551
fix(skills): align Go/TS frontmatter coercion for non-scalar values
...
The Go SKILL.md frontmatter parser unmarshalled into a {Name,Description}
string struct, so a non-scalar value (a list/map written where a scalar
belongs) made the whole decode fail and dropped even a valid sibling
`name`. The TS parser instead kept the name and JSON-encoded the value,
so the file-viewer (TS) and the import path (Go) could disagree about
the same SKILL.md.
Decode into a generic map and coerce per key on the Go side, mirroring
the TS coercion (scalars -> literal form, sequences/mappings -> JSON), so
both sides produce identical results and a structured value never
discards a sibling key. Rename ParseFrontmatter -> ParseSkillFrontmatter
to remove the cross-language name clash with the TS parseFrontmatter
(which returns {frontmatter, body}), and drop the unused TS
parseSkillFrontmatter export.
Add parity tests for sequence/mapping values plus name-only,
description-only, leading-blank-line and triple-dash-in-body edge cases
on both sides.
Follow-up to #3543 / MUL-2842.
Co-authored-by: multica-agent <github@multica.ai >
2026-06-01 19:39:19 +08:00
..
2026-05-09 16:11:58 +08:00
2026-05-09 16:11:58 +08:00
2026-05-28 16:05:19 +08:00
2026-05-28 16:05:19 +08:00
2026-05-26 18:58:06 +08:00
2026-05-11 12:39:45 +08:00
2026-05-28 19:06:57 +08:00
2026-05-28 19:06:57 +08:00
2026-05-28 19:06:57 +08:00
2026-05-20 12:30:10 +08:00
2026-05-28 15:53:16 +08:00
2026-05-29 14:57:14 +08:00
2026-05-29 15:16:22 +08:00
2026-05-27 15:47:36 +08:00
2026-05-18 12:17:39 +08:00
2026-05-27 15:47:36 +08:00
2026-05-27 15:47:36 +08:00
2026-05-27 15:47:36 +08:00
2026-05-13 16:57:34 +08:00
2026-05-28 15:53:16 +08:00
2026-05-28 16:05:19 +08:00
2026-05-28 16:05:19 +08:00
2026-05-27 14:52:03 +08:00
2026-05-27 14:52:03 +08:00
2026-06-01 08:28:15 +08:00
2026-06-01 08:28:15 +08:00
2026-05-30 18:13:02 +08:00
2026-05-30 18:13:02 +08:00
2026-05-22 13:22:36 +08:00
2026-05-22 13:22:36 +08:00
2026-05-29 20:13:23 +08:00
2026-04-28 16:07:24 +08:00
2026-05-29 20:13:23 +08:00
2026-05-21 15:33:47 +08:00
2026-05-21 15:33:47 +08:00
2026-04-28 14:50:28 +08:00
2026-05-13 18:24:15 +08:00
2026-05-13 18:24:15 +08:00
2026-05-26 16:45:46 +08:00
2026-05-26 16:45:46 +08:00
2026-06-01 08:28:15 +08:00
2026-05-28 16:42:08 +08:00
2026-05-07 15:50:27 +08:00
2026-05-07 15:50:27 +08:00
2026-05-06 14:31:33 +08:00
2026-04-28 14:50:28 +08:00
2026-05-04 21:24:56 +08:00
2026-05-21 19:00:26 +08:00
2026-04-30 15:35:12 +08:00
2026-05-29 12:49:07 +08:00
2026-05-29 12:49:07 +08:00
2026-05-27 16:28:15 +08:00
2026-05-28 14:20:20 +08:00
2026-05-15 18:44:08 +08:00
2026-05-19 10:37:38 +08:00
2026-05-21 16:35:45 +08:00
2026-05-21 16:35:45 +08:00
2026-05-19 17:04:16 +08:00
2026-05-28 14:20:20 +08:00
2026-04-28 14:50:28 +08:00
2026-05-20 17:18:41 +08:00
2026-05-06 11:01:22 +02:00
2026-05-26 17:00:01 +08:00
2026-05-21 19:00:26 +08:00
2026-05-21 19:00:26 +08:00
2026-05-21 15:33:47 +08:00
2026-05-27 22:22:26 +08:00
2026-05-27 22:22:26 +08:00
2026-04-28 14:50:28 +08:00
2026-05-27 13:44:31 +08:00
2026-05-27 13:44:31 +08:00
2026-05-27 13:44:31 +08:00
2026-05-27 14:18:48 +08:00
2026-04-28 14:50:28 +08:00
2026-05-25 10:05:17 +08:00
2026-05-26 14:59:38 +08:00
2026-05-06 14:31:33 +08:00
2026-05-06 14:31:33 +08:00
2026-05-18 16:56:27 +08:00
2026-05-18 16:56:27 +08:00
2026-05-18 16:56:27 +08:00
2026-05-22 14:39:47 +08:00
2026-05-03 11:13:34 +08:00
2026-05-03 11:13:34 +08:00
2026-05-03 11:13:34 +08:00
2026-05-20 12:30:10 +08:00
2026-05-26 14:59:38 +08:00
2026-05-06 13:00:11 +08:00
2026-05-06 13:00:11 +08:00
2026-05-06 13:00:11 +08:00
2026-05-06 13:00:11 +08:00
2026-05-21 15:33:47 +08:00
2026-05-26 14:59:38 +08:00
2026-05-18 15:45:06 +08:00
2026-05-13 18:26:04 +08:00
2026-06-01 14:45:16 +08:00
2026-05-22 12:22:07 +08:00
2026-06-01 15:19:42 +08:00
2026-05-13 18:26:04 +08:00
2026-06-01 19:39:19 +08:00
2026-05-13 18:46:20 +08:00
2026-05-22 13:48:21 +08:00
2026-05-22 13:48:21 +08:00
2026-05-25 18:06:33 +08:00
2026-05-18 10:35:18 +02:00
2026-05-14 14:07:26 +08:00
2026-05-25 18:06:33 +08:00
2026-05-11 12:39:45 +08:00
2026-05-28 15:53:16 +08:00
2026-04-29 15:54:24 +08:00
2026-05-29 15:16:22 +08:00
2026-05-21 15:33:47 +08:00
2026-05-18 14:59:40 +08:00
2026-05-18 14:59:40 +08:00
2026-05-18 12:17:39 +08:00
2026-05-18 12:17:39 +08:00
2026-05-08 19:14:12 +08:00
2026-05-11 15:06:50 +08:00
2026-05-28 16:42:08 +08:00
2026-05-28 16:42:08 +08:00