← all branches

content/auto-draft

needs attentionviewing older commit
cc9056e · fullPR #325reviewed 2026-07-20 16:40 UTC1H · 3M · 9L · 22I
The branch
Purpose
Build informational content cluster for CFE tariff keywords targeting solar installers and energy managers in Mexico.
Goal
Publish 'GDMTO vs GDMTH' blog post — a priority-2 informational keyword in the content strategy, with two custom SVG charts for the comparison.
Sub-goals
  • New MDX blog post with structured comparison table, FAQ, and CTAs
  • Two new SVG chart components: GdmtoVsGdmthDecisionChart (side-by-side schematic) and GdmtoVsGdmthCostChart (cost comparison by load profile)
  • Calendar status update: idea→review
The changes (whole branch)
What
Added gdmto-vs-gdmth.mdx (179 lines), two chart components in charts.tsx (+176 lines), registered in page.tsx MDX map (+2/-2), calendar.yml status update (+1/-1).
Why
Targets 'GDMTO vs GDMTH' — priority-2 informational keyword in the content strategy. Adds the second post in the CFE tariff informational cluster after tarifa-gdmth.
Areas
apps/web/content+1801apps/web/src/components/blog+1760apps/web/src/app/(marketing)/blog+22
Blast
4 files, +358/-2. Marketing site (apps/web) only. No platform, no DB, no API, no auth. Content + chart rendering only.
ci· GraphQL checks unavailable for this tokencoderabbit· No .coderabbit.yaml in repocorrectness· 1 medium, 2 lowsecurity· Clean — static SVG, no user inputconventions· 2 lowtests· 1 low pre-existing e2e gapimprovement· 1 high, 2 mediumseo· All metadata/schema/sitemap correct; 2 low info-only

Findings · 13

correctness3

medium

GDMTH demand billing oversimplification: demanda facturable applies separately to each component

apps/web/content/blog/gdmto-vs-gdmth.mdx:105

The post doesn't clarify that punta-period energy (not total energy) caps the capacidad charge. Material for solar installer audience sizing panels.

low

SVG caption text baseline at y=298 inside h=300 viewBox — clipping risk

apps/web/src/components/blog/charts.tsx:723

GdmtoVsGdmthDecisionChart: cardY+cardH+26 = 298, only 2 units from viewBox bottom. Increase h to 320.

low

Media tensión stated as '< 69 kV' should be '≤ 69 kV'

apps/web/content/blog/gdmto-vs-gdmth.mdx:40

CFE definition is up to and including 69 kV. Minor wording.

conventions2

low

■ legend marker loses per-block TOU colour on dark Punta row

apps/web/src/components/blog/charts.tsx:710

Dark=true Punta row: text fill is #ffffff, making ■ swatch white instead of TOU.punta orange/red. Use <tspan fill={TOU.punta}>■</tspan>.

low

Dead code: fill={b.dark ? VIOLET : VIOLET} is a no-op (duplicate of improvement/high)

apps/web/src/components/blog/charts.tsx:812

Same as improvement/high finding. Both branches return VIOLET.

tests1

low

Blog routes absent from e2e marketing smoke test (pre-existing gap)

e2e/web/marketing.spec.ts:11

Comment says blog 'not built yet' but 4+ posts live. Adding /blog + one slug would catch MDX registration errors.

improvement5

high

Dead-code ternary: b.dark ? VIOLET : VIOLET is a no-op

apps/web/src/components/blog/charts.tsx:812

Both branches resolve to VIOLET. On the full-opacity GDMTO winner bar this produces low-contrast VIOLET on VIOLET. Likely meant fill={b.dark && isWin ? '#ffffff' : VIOLET}.

medium

Hardcoded gridline values [5000,10000,15000,20000] tied to current COST_MODEL

apps/web/src/components/blog/charts.tsx:784

If COST_MODEL prices change, top gridline could fall below bars while scale stretches. Derive from maxCost instead.

medium

Inner card helper uses 5 positional args including an array — harder to maintain

apps/web/src/components/blog/charts.tsx:671

Used only twice. If a 3rd card is ever needed, the positional API becomes error-prone.

low

COST_MODEL at module scope but only used by one chart

apps/web/src/components/blog/charts.tsx:735

Moving inside the function would make coupling explicit.

low

Import line in page.tsx has grown to 10 named exports on one line

apps/web/src/app/(marketing)/blog/[slug]/page.tsx:10

Not a bug but will become hard to diff. Consider splitting across lines.

seo2

low

llms.txt does not list the new post URL — minor GEO gap

apps/web/public/llms.txt:22

Priority-2 keyword. Add entry for /blog/gdmto-vs-gdmth to improve AI answer engine discoverability.

low

Regulatory source citations: verify rates still current before publish

apps/web/content/blog/gdmto-vs-gdmth.mdx:157

Cites Acuerdo CT/11.SE/8-2025 (DOF enero 2026). Good disclaimer present. Mark for factual review before merging.

History · 14 commits

  1. c27ea57needs attentionincremental3H · 5M · 4L2026-08-04 17:46
  2. ff69645needs attentionincremental0H · 6M · 8L2026-07-28 18:21
  3. 0257d74safeincremental0H · 0M · 0L2026-07-20 23:00
  4. 0795a9dsafeincremental0H · 0M · 2L2026-07-20 22:42
  5. 5c57414needs attentionincremental2H · 7M · 10L2026-07-20 22:29
  6. 5a57a8fneeds attentionincremental0H · 5M · 8L2026-07-20 17:14
  7. cc9056eneeds attentionfull1H · 3M · 9L2026-07-20 16:40current
  8. 8b79d33needs attentionincremental5H · 7M · 11L2026-07-14 18:10
  9. f0c337cneeds attentionincremental1H · 1M · 5L2026-07-14 17:15
  10. 5c9de97needs attentionincremental0H · 5M · 7L2026-07-14 17:02
  11. 92cce08needs attentionincremental1H · 4M · 3L2026-07-14 02:00
  12. b7dd610needs attentionincremental0H · 6M · 7L2026-07-14 01:43
  13. 8c43554needs attentionfull0H · 2M · 1L2026-07-14 01:15
  14. 2149391blockedfull8H · 6M · 7L2026-07-10 17:30