尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Calculadoras financieras y laborales de Chile
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Calculadoras laborales, tributarias y financieras para Chile • Qué es • Estado del catálogo • Características • Stack • Inicio rápido • Comandos • Arquitectura • Patrón de calculadoras • Valores económicos • SEO, YMYL y AdSense • Contenido editorial • Variables de entorno • CI / GitHub Actions • Documentación del repo • Validación por tipo de cambio • Qué no tocar sin aprobación • Deploy • Autor • English overview CalculaChile es una plataforma web chilena de calculadoras + contenido (laboral, tributario, previsional, financiero, vivienda, vehículos).檢視完整 README ↗
40 calculadoras activas · valores oficiales en vivo · SEO orgánico · AdSense · vertical YMYL
Sitio en producción: calculadorachile.cl
Blog · Guías · Sueldo líquido · IVA · Finiquito
CalculaChile es una plataforma web chilena de calculadoras + contenido (laboral, tributario, previsional, financiero, vivienda, vehículos).
Es un producto YMYL (Your Money / Your Life): un error en una fórmula, un tope o una fuente puede afectar decisiones económicas reales y dañar confianza y ranking.
| Prioridad | Qué significa en la práctica |
|---|---|
| 1. Confiabilidad | UI = adapter = módulo; fuentes oficiales; tests |
| 2. SEO orgánico | URLs estables, metadata, schema, E-E-A-T |
| 3. AdSense | Pageviews de calidad; no mover placements por estética |
| 4. Ship barato | Stack liviano; sin dependencias “por si acaso” |
No es: e-commerce, SaaS con login, negocio local ni web de pyme (sin LocalBusiness, sin CTA de WhatsApp/barrio).
| Pieza | Cantidad | Ubicación |
|---|---|---|
| Calculadoras activas | 40 | src/data/calculators.ts |
| Módulos de cálculo + tests | 40 + 42 | src/lib/calculations/ |
| Guías pillar | 12 | src/data/guias.ts |
| Artículos de blog | 19 | src/data/articles.ts |
| Categorías canónicas | 12 | src/lib/calculatorCategories.ts |
Calculadoras noIndex | 8 | thin content en cuarentena SEO |
bono-bodas-oro fue reactivado el 26-09-2026 con fórmula verificada en ChileAtiende (ficha 5369); el antiguo route.ts con 410 Gone fue eliminado.
| Calculadora | Ruta |
|---|---|
| Sueldo líquido | /calculadoras/calculadora-sueldo-liquido |
| Finiquito | /calculadoras/calculadora-finiquito |
| UF ↔ CLP | /calculadoras/calculadora-uf-clp |
| IVA | /calculadoras/calculadora-iva |
| Horas extra | /calculadoras/calculadora-horas-extra |
| Vacaciones proporcionales | /calculadoras/calculadora-vacaciones-proporcionales |
| Boleta de honorarios | /calculadoras/calculadora-boleta-honorarios |
| UTM ↔ CLP | /calculadoras/calculadora-utm-clp |
| Gratificación legal | /calculadoras/calculadora-gratificacion-legal |
| Indemnización por años de servicio | /calculadoras/calculadora-indemnizacion-anos-servicio |
| Pensión alimenticia | /calculadoras/calculadora-pension-alimenticia |
| Reajuste de arriendo | /calculadoras/calculadora-reajuste-arriendo |
| Permiso de circulación | /calculadoras/calculadora-permiso-circulacion |
| Costo empleado PYME | /calculadoras/calculadora-costo-empleado-pyme |
| Crédito hipotecario | /calculadoras/calculadora-credito-hipotecario |
Operación Renta, contribuciones, notaría, plusvalía, subsidio habitacional, patente comercial, comparador AFP, APV, intereses por mora, asignación familiar, CAE, crédito automotriz, multas de tránsito, costo TAG (noIndex), cuenta de luz.
Impuesto 2.ª categoría, PPM, y con noIndex: subsidio agua, cotización independientes, propina legal, gastos comunes, conversor divisas, aguinaldo, PGU.
sueldo · impuestos · beneficios · conversiones · familia · vivienda · vehiculos · empresas · servicios · pension · educacion · hogar
| Feature | Detalle | |
|---|---|---|
| 🧮 | 40 calculadoras | Laborales, impuestos, vivienda, vehículos, pensiones, hogar |
| ⚡ | Valores en vivo | UF, UTM, dólar, euro vía GET /api/values |
| 🧩 | Code-split de cálculo | Carga dinámica por calculator.id (load-calculator.ts) |
| 🛡️ | Inputs honestos | Coerción central (input-coerce.ts); meta: 0 inputs fantasma |
| 📈 | Gráficos SVG | Amortización / desgloses donde el módulo lo soporta |
| 🔍 | SEO YMYL | Metadata, seo-overrides, sitemaps, JSON-LD, FAQ, fuentes |
| 📱 | Mobile-first | Light-only, Geist Sans/Mono, overflow controlado |
| 💰 | AdSense + GA4 | Monetización y analítica de producción |
| 📰 | Blog + guías | Contenido estacional y pillar con CTA a calculadoras |
Fuera de scope del stack: Three.js, React Three Fiber, GSAP, Lenis, dark mode.
Verifica siempre package.json antes de asumir versiones.
| Capa | Tecnología |
|---|---|
| Framework | Next.js 15 (App Router) |
| UI | React 19, TypeScript 5 |
| Estilos | Tailwind CSS 3 (modo light-only) |
| Animación | Framer Motion 12 (microinteracciones) |
| Íconos | Lucide React |
| Tests | Vitest 3 + jsdom |
| OG / canvas | canvas (devDependency, server-side donde aplica) |
| Deploy | Vercel |
# Requisitos: Node 20+ recomendado (CI usa Node 22)
git clone https://github.com/falopass/calculadorachile.git
cd calculadorachile
npm install
npm run dev
# → http://localhost:3000
Sin credenciales del Banco Central el sitio funciona con Mindicador y fallback local.
npm run dev # desarrollo
npm run build # build de producción
npm start # servir build
npm run lint # ESLint
npm run lint:fix # ESLint --fix
npm run typecheck # tsc --noEmit
npm run format # Prettier write
npm run format:check # Prettier check
npm test # Vitest watch
npm run test:run # Vitest una pasada
npm run test:coverage # coverage
# Matriz catálogo ↔ adapter (YMYL)
node scripts/audit-ymyl-matrix.mjs
# Snapshot UF/UTM/divisas (también corre en GitHub Actions)
node scripts/update-values.mjs
src/
├── app/
│ ├── api/values/ # UF, UTM, dólar, euro
│ ├── calculadoras/[slug]/ # páginas de calculadoras
│ ├── blog/ · guias/ · categoria/ · buscar/
│ ├── sitemap*.xml/ # sitemaps segmentados
│ ├── robots.ts
│ └── layout.tsx # fuentes, AdSense, JSON-LD global
├── components/
│ ├── calculator/ # shell, inputs, results, FAQ
│ ├── home/ # hero, popular, catálogo
│ ├── ads/ · analytics/ · seo/
│ ├── search/ # SiteSearch
│ └── DisclaimerYMYL.tsx
├── data/
│ ├── calculators.ts # catálogo activo (39)
│ ├── articles.ts · guias.ts
│ └── seo-overrides.ts # titles/descriptions CTR
├── lib/
│ ├── calculations/ # lógica pura + __tests__/
│ │ ├── input-coerce.ts
│ │ └── load-calculator.ts # dynamic import por id
│ ├── api/ # BCentral, Mindicador
│ ├── values/ # constants, fallback, snapshot
│ ├── seo/ # schema, metadata, related, sitemaps
│ ├── formatters.ts # CLP / UF / UTM chilenos
│ └── context/ValuesContext.tsx
└── types/calculator.ts
docs/
│ contexto.md # producto + YMYL + Codex
│ plan-editorial.md # backlog de posts
│ research/ # dossier-ymyl, inventario-seo, deep-research
scripts/ # audit-ymyl-matrix, update-values
.github/workflows/ # snapshot diario de valores
Cliente / SSR
↓
GET /api/values
↓
BCentral → Mindicador → fallback (snapshot.json / constants)
↓
ValuesContext / useLiveValues → calculadoras (valorUF/UTM opcional)
Cache: revalidate = 3600 y headers s-maxage=3600, stale-while-revalidate=86400.
Una calculadora activa se arma en cuatro piezas unidas por calculator.id:
| # | Pieza | Archivo |
|---|---|---|
| 1 | Catálogo | src/data/calculators.ts — id, slug, inputs, FAQ, sources, phase, noIndex… |
| 2 | Lógica pura | src/lib/calculations/<modulo>.ts + *ToResults |
| 3 | Loader / adapter | src/lib/calculations/load-calculator.ts (code-split) |
| 4 | Test | src/lib/calculations/__tests__/<modulo>.test.ts |
calculator.id, no el nombre del archivo.slug define la URL pública: no cambiar sin plan SEO (rompe tráfico indexado).src/lib/formatters.ts ($1.000.000).| Concepto | Dónde |
|---|---|
| Endpoint | GET /api/values |
| Snapshot versionado | src/lib/values/snapshot.json |
| Constantes legales | src/lib/values/constants.ts |
| Fallback runtime | src/lib/values/fallback.ts |
| Job diario | .github/workflows/update-values.yml → scripts/update-values.mjs |
No hardcodear UF, UTM, dólar, topes o tasas en componentes de UI.
Credenciales BCentral (BCENTRAL_USER, BCENTRAL_PASS) solo en Vercel / secrets de GitHub Actions. El repo debe funcionar sin ellas.
| Tema | Ubicación |
|---|---|
| Metadata base | src/lib/seo/metadata.ts, src/app/layout.tsx |
| Overrides CTR | src/data/seo-overrides.ts (canónico para title/description) |
| Schema.org | src/lib/seo/schema.ts — Organization, Person, WebSite, FAQ, HowTo, SoftwareApplication, Article, Breadcrumbs… |
| Sitemaps | src/app/sitemap*.xml/route.ts + src/lib/seo/sitemap-helpers.ts |
| Related calcs | src/lib/seo/related-calculators.ts |
| Plan de contenidos | docs/plan-editorial.md |
No usar LocalBusiness: es plataforma web nacional.
Regla de oro: sin fuente oficial verificada, no se cambia una fórmula.
Fuentes típicas: Banco Central, SII, Dirección del Trabajo, Superintendencia de Pensiones, CMF, IPS/ChileAtiende, MINVU, BCN/Ley Chile.
node scripts/audit-ymyl-matrix.mjs # catálogo ↔ adapter ↔ módulo
Estado YMYL y arranque: docs/contexto.md. Matriz: node scripts/audit-ymyl-matrix.mjs.
src/app/layout.tsx; componentes en src/components/ads/.NEXT_PUBLIC_ADSENSE_PUBLISHER_ID=ca-pub-XXXXXXX desactiva la carga real: no “arreglar” el placeholder.| Doc | Rol |
|---|---|
docs/plan-editorial.md | Único plan de posts (publicados + pendientes) |
docs/research/ | dossier-ymyl · inventario-seo · deep-research |
Código de blog: src/data/articles.ts → URL /blog/{slug}.
# Banco Central de Chile (opcional)
BCENTRAL_USER=
BCENTRAL_PASS=
# Públicos
NEXT_PUBLIC_SITE_URL=https://calculadorachile.cl
NEXT_PUBLIC_ADSENSE_PUBLISHER_ID=ca-pub-XXXXXXX
NEXT_PUBLIC_GA_MEASUREMENT_ID=
DEBUG=false
| Variable | Notas |
|---|---|
BCENTRAL_* | Solo server / Actions. Sin ellas → Mindicador + fallback |
NEXT_PUBLIC_SITE_URL | Canonical y sitemaps |
NEXT_PUBLIC_ADSENSE_PUBLISHER_ID | Placeholder ca-pub-XXXXXXX = sin ads reales |
NEXT_PUBLIC_GA_MEASUREMENT_ID | GA4 |
Secretos de producción: Vercel Dashboard y GitHub Secrets (workflow de valores). Nunca commitear .env.
| Workflow | Archivo | Qué hace |
|---|---|---|
| Actualizar valores oficiales | .github/workflows/update-values.yml | Diario ~12:30 UTC: corre update-values.mjs y, si cambió, commit de snapshot.json |
Commit típico del bot: chore(values): actualizar snapshot diario [skip ci].
| Documento | Contenido |
|---|---|
AGENTS.md | Constitución del producto |
docs/contexto.md | Producto + YMYL + operación con Codex |
docs/plan-editorial.md | Backlog de posts |
docs/research/ | dossier-ymyl · inventario-seo · deep-research |
La configuración de Codex del producto se versiona junto con el repo:
.codex/config.toml # límites y registro de agentes
.codex/agents/ # architect, backend, frontend, seo, security, explorer-fast
.agents/skills/ # workflows YMYL, calculadoras, SEO, editorial y ship
AGENTS.md sigue siendo la constitución y prevalece sobre la configuración auxiliar. .grok/ y .opencode/ permanecen gitignored como compatibilidad local.
Para que Codex descubra toda la configuración, abre o inicia la tarea desde C:\code\ecosistema-chile\CalculaChile y marca el repo como confiable. Si abres la carpeta padre ecosistema-chile, su AGENTS.md solo enruta hacia cada producto.
| Cambio | Validación mínima |
|---|---|
| Fórmula de cálculo | Test en __tests__/ + npm run typecheck |
| Nueva calculadora | Test + loader/wiring + typecheck + build |
| Catálogo / categorías / rutas | typecheck + build |
| SEO (metadata, schema, sitemap) | typecheck + build |
/api/values o datos externos | typecheck + prueba del endpoint |
| UI / componente | typecheck + revisión mobile |
| Solo docs | Lectura del archivo y referencias cruzadas |
Si la validación falla, se corrige y se vuelve a ejecutar. No entregar “debería pasar”.
formatters.ts.main.calculadorachile.cl (www redirige).Mantenido por Diego Bravo Opazo — GitHub @falopass.
Live: https://calculadorachile.cl
CalculaChile (calculadorachile.cl) is a production Chilean platform with 39 active calculators for salaries, taxes, pensions, housing, vehicles and household costs, plus guides and a blog. Live indicators (UF, UTM, USD, EUR) come from the Central Bank / Mindicador with a local snapshot fallback.
Stack: Next.js 15 (App Router), React 19, TypeScript 5, Tailwind 3, Framer Motion, Vitest. Monetization: Google AdSense. Deploy: Vercel.
This is a YMYL product: formula changes require verified official sources (SII, Labour Directorate, Central Bank, Pension Superintendence, etc.). Catalog inputs must match what the calculation adapter actually uses (no “phantom” fields).
Contributor and agent rules: AGENTS.md. Context: docs/contexto.md. Editorial: docs/plan-editorial.md. Codex project agents live in .codex/agents/ and reusable workflows in .agents/skills/.
calculadorachile.cl · confiable · chileno · open for contributions that respect YMYL