feat(content): migrate interactiveCopy into six typed collections

Move the six remaining bilingual datasets from app.js:160 into Astro
content collections so GuideSelector has data to drive. Mechanical copy
of 178 strings (160 localized pairs + 18 worker array strings) plus
the non-localized fields (status, path, command, score, icon, title,
number). Source field on commonSkills embedded from skillSources to
match the GuideSelectorData contract; if a URL changes, both this
entry and skillSources/<id>.json must be updated. Status kept on trees
even though GuideSelectorData omits it — index.html renders it.

Did not delete interactiveCopy from app.js: legacy page still consumes
it, and verify.mjs still asserts against it. Did not migrate the
labels (data.labels.*) — those live inside render functions in app.js
and belong to 15d.
This commit is contained in:
Marcos Paulo
2026-09-05 18:48:07 +00:00
parent 99ccc8e249
commit fc063f606a
28 changed files with 507 additions and 0 deletions
+9
View File
@@ -0,0 +1,9 @@
{
"id": "build",
"score": 38,
"label": { "en": "Bounded execution", "pt": "Execução delimitada" },
"why": {
"en": "The brief already removed ambiguity. Optimize for speed and tight feedback.",
"pt": "O brief já removeu a ambiguidade. Otimize para velocidade e feedback curto."
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"id": "explore",
"score": 22,
"label": { "en": "Read-only discovery", "pt": "Descoberta somente leitura" },
"why": {
"en": "Search, map, and report. A lightweight model can return facts without editing.",
"pt": "Busque, mapeie e reporte. Um modelo leve devolve fatos sem editar."
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"id": "plan",
"score": 92,
"label": { "en": "High ambiguity", "pt": "Alta ambiguidade" },
"why": {
"en": "Architecture and decomposition have a wide error surface. Spend reasoning here.",
"pt": "Arquitetura e decomposição têm grande superfície de erro. Invista raciocínio aqui."
}
}
+9
View File
@@ -0,0 +1,9 @@
{
"id": "review",
"score": 74,
"label": { "en": "Independent judgment", "pt": "Julgamento independente" },
"why": {
"en": "Reconnect the diff to intent with fresh context and adversarial attention.",
"pt": "Reconecte o diff à intenção com contexto novo e atenção crítica."
}
}