docs(corpus): delete the terra-era DATA_ATTRS fossil + its dead generator

Per explicit instruction to remove deprecated/erroneous files (noise/confusion):

- DATA_ATTRS.md (repo root, 2158 lines) — a stale "Terra Data Attributes
  Contracts" catalog, already self-headed DEPRECATED. The data-* contract is the
  morfo, validated by morfo:check; this file only lied about it.
- scripts/generate-contracts-docs.ts — its generator, which imports the removed
  src/uix/terra/utils/contracts.ts, so it can no longer run.

No doc links to either; nothing imports the script. The package.json
`generate:contracts-docs` entry now dangles at the deleted script — left
untouched because package.json carries unrelated concurrent edits I won't sweep;
flagged in the CONTINUE hand-off to remove later.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
active-uix
dev 4 months ago
parent 001682c254
commit 9926add637

File diff suppressed because it is too large Load Diff

@ -66,7 +66,7 @@ permanente/efímero, drift, dos idiomas.
- **Commitear el libro v2.3** (hoy untracked → el enlace de `CANON.md` no resuelve en remoto). Decisión del usuario.
- **Migración de idioma** coordinada (docs de capa es→en).
- **Fósiles `.md` pendientes (censo 2026-06-14, respuesta a "los .md que quedan")**:
- **`DATA_ATTRS.md`** (RAÍZ del repo, no src; 2158 L; cabecera ya LEGACY/DEPRECATED) — output de `scripts/generate-contracts-docs.ts`, que está **MUERTO** (importa `src/uix/terra/utils/contracts.ts`, capa borrada → el import falla). NO se regenera. El morfo + `morfo:check` son la fuente real. Acción: **retirar a `docs/process/`** (su propio header dice "slated to move under docs/process/"). "Regenerar desde morfos" = reescribir el generador (tarea aparte). El script muerto es también fósil (borrar = orden explícita).
- **`DATA_ATTRS.md`** (RAÍZ del repo) + **`scripts/generate-contracts-docs.ts`** — **ELIMINADOS (2026-06-14, orden explícita "elimina deprecated/erróneos")**. Eran un par acoplado fósil del `terra` borrado: el script importaba `src/uix/terra/utils/contracts.ts` (no existe → muerto) y escribía el catálogo deprecated `DATA_ATTRS.md`. La fuente real del contrato `data-*` es el morfo + `morfo:check`. **Pendiente menor**: `package.json` aún tiene el entry `generate:contracts-docs` apuntando al script borrado — NO lo toqué (package.json está foráneo-modificado; barrerlo arrastraría cambios ajenos). Quitar esa línea cuando se resuelvan los cambios foráneos de package.json.
- **`src/audit-opus-4-6-26.md`** (arch audit 2026-06-04) — process/efímero en ubicación de referencia, **sin citas externas** → mover a `docs/process/` limpio.
- **`src/uix/eidos/THEMING_AUDIT_2026-06-01.md`** — process/efímero, pero **citado en ~7 sitios** (CLAUDE.md ×3, THEMING.md ×3, COLOR_ENGINE_RFC) → mover requiere sweep de citas; encaja con el adelgazado de CLAUDE.md.
- **NO mover** (provenance citada, como los RFCs): `src/uix/eidos/lib/canvas-text/fix-stext.md` (citado en ~8 sitios del código canvas-text + TYPOGRAPHY_RFC). Se queda; opcional indexar en decisions.md.

@ -70,8 +70,8 @@ edit the output; edit the source and regenerate.
| `npm run generate:eidos-css` | the eidos foundation/recipe CSS, from `EidosConfig.recipes`. (`generated/base.css` is output — regenerate, don't hand-edit.) |
The `data-*` contract is **not** a generated doc — it is the morfo itself, validated
live by `npm run morfo:check`. (A legacy `generate:contracts-docs` script + its
output `DATA_ATTRS.md` survive from the removed `terra` layer and no longer run.)
live by `npm run morfo:check`. (A legacy `generate:contracts-docs` script and its
output `DATA_ATTRS.md`, both fossils of the removed `terra` layer, were deleted.)
The **morfo compiler** itself is the central codegen primitive: `compileMorfo(morfo)`
turns a declaration into a `CompiledMorfo` (resolved attr / keyboard / action

@ -1,103 +0,0 @@
/**
* Generador de documentación de contratos data-*
*
* Este script lee el registro CONTRACTS y genera un markdown
* con la documentación de todos los data-attrs de cada componente.
*
* Uso:
* npm run generate:contracts-docs
* o
* node scripts/generate-contracts-docs.js
*/
import { CONTRACTS } from '../src/uix/terra/utils/contracts.ts';
import { existsSync, writeFileSync } from 'node:fs';
import { resolve, dirname } from 'node:path';
import { fileURLToPath } from 'node:url';
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
// ────────────────────────────────────────────────────────────────────────────────
// Helpers de formateo
// ────────────────────────────────────────────────────────────────────────────────
function toKebabCase(str: string): string {
return str
.replace(/([a-z])([A-Z])/g, '$1-$2')
.replace(/[\s_]+/g, '-')
.toLowerCase();
}
function formatComponentName(name: string): string {
return `\`${name}\``;
}
function formatAttrValue(values?: readonly string[]): string {
if (!values) return '(flag)';
return values.map((v) => `\`${v}\``).join(' \\| ');
}
// ────────────────────────────────────────────────────────────────────────────────
// Generación de markdown
// ────────────────────────────────────────────────────────────────────────────────
let markdown = `# Terra Data Attributes Contracts
`;
markdown += `> Contrato formal de atributos \`data-*\` entre Terra y Air.
> Generado automáticamente desde \`src/uix/terra/utils/contracts.ts\`.
>
> ⚠️ **Estos attrs son API PÚBLICA.** Cambiarlos es un breaking change.
>
`;
markdown += `---
`;
markdown += `\n`;
markdown += `## Índice
`;
markdown += `\n`;
// Tabla de contenidos
for (const [name, contract] of Object.entries(CONTRACTS)) {
markdown += `- [${name}](#${toKebabCase(name)})\n`;
}
markdown += `\n`;
markdown += `---\n`;
markdown += `\n`;
// Generar documentación por componente
for (const [name, contract] of Object.entries(CONTRACTS)) {
markdown += `## ${name}\n\n`;
markdown += `**Versión del contrato:** ${contract.version}\n\n`;
if (Object.keys(contract.parts).length === 0) {
markdown += `*Sin partes documentadas*\n\n`;
continue;
}
for (const [partName, attrs] of Object.entries(contract.parts)) {
markdown += `### ${partName === 'root' ? 'TooltipContext' : partName.charAt(0).toUpperCase() + partName.slice(1)}\n\n`;
markdown += `| Attr | Valores | Descripción |\n`;
markdown += `|-----|---------|-------------|\n`;
for (const attr of attrs) {
const values = formatAttrValue(attr.values);
const description = attr.description || '';
markdown += `| \`${attr.attr}\` | ${values} | ${description} |\n`;
}
markdown += `\n`;
}
markdown += `---\n\n`;
}
// ────────────────────────────────────────────────────────────────────────────────
// Escribir archivo
// ────────────────────────────────────────────────────────────────────────────────
const outputPath = resolve(__dirname, '..', 'DATA_ATTRS.md');
writeFileSync(outputPath, markdown);
console.log(`✅ Documentación generada: ${outputPath}`);
console.log(` ${Object.keys(CONTRACTS).length} componentes documentados`);
Loading…
Cancel
Save

Powered by TurnKey Linux.