@profile-as-code/cli 0.3.0 → 0.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +71 -20
- package/dist/index.js +2791 -289
- package/package.json +12 -7
- package/skills/README.md +62 -0
- package/skills/github-org/SKILL.md +92 -0
- package/skills/github-org/checks.yaml +40 -0
- package/skills/github-org/playbook.md +30 -0
- package/skills/github-org/research/SOTA-2026.md +39 -0
- package/skills/github-readme/SKILL.md +114 -0
- package/skills/github-readme/checks.yaml +32 -0
- package/skills/github-readme/playbook.md +36 -0
- package/skills/github-readme/research/SOTA-2026.md +105 -0
- package/skills/hotmart/SKILL.md +150 -0
- package/skills/hotmart/checks.yaml +43 -0
- package/skills/hotmart/playbook.md +53 -0
- package/skills/hotmart/research/SOTA-2026.md +142 -0
- package/skills/kofi/SKILL.md +127 -0
- package/skills/kofi/checks.yaml +42 -0
- package/skills/kofi/playbook.md +47 -0
- package/skills/kofi/research/SOTA-2026.md +160 -0
- package/skills/linkedin/post.md +50 -0
- package/skills/linkedin/posting.yaml +23 -0
- package/skills/x/post.md +46 -0
- package/skills/x/posting.yaml +24 -0
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: hotmart-profile
|
|
3
|
+
description: >
|
|
4
|
+
Transforma los hechos del SSOT (profile-data/content/*.yaml) en el cuerpo de
|
|
5
|
+
perfil de la página de creador de Hotmart — texto PLANO listo para pegar, no
|
|
6
|
+
markdown ni dump. Hotmart es la tienda de productos digitales + membresías
|
|
7
|
+
(Members Area / recurring billing) para los mercados hispano/luso — familia
|
|
8
|
+
creator-monetization (research/SOTA-2026.md). El agente ejecutante produce N
|
|
9
|
+
variantes; el humano elige; la elegida se registra como variante activa
|
|
10
|
+
(content/active.yaml) y el paste se marca en el ledger (D18) con
|
|
11
|
+
`pasco status --mark`.
|
|
12
|
+
model: juicio (frontier) — el ángulo de storefront (vender productos, no pedir
|
|
13
|
+
donaciones) no es delegable a modelos pequeños
|
|
14
|
+
applies_to: hotmart
|
|
15
|
+
projection: agent-agnostic (AionUi, OpenHands, Claude Code, Cursor, pi…)
|
|
16
|
+
version: 0.1.0
|
|
17
|
+
status: draft
|
|
18
|
+
sources: skills/hotmart/research/SOTA-2026.md
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# Hotmart perfil de creador — skill de comunicación
|
|
22
|
+
|
|
23
|
+
## Misión
|
|
24
|
+
|
|
25
|
+
Convertir los HECHOS del workspace (SSOT) en el **cuerpo de perfil** de la
|
|
26
|
+
página de creador de Hotmart: qué vendés, qué construis y UNA acción
|
|
27
|
+
(explorar los productos). Hotmart es plataforma **paste** (D9 — sin API
|
|
28
|
+
documentada para el cuerpo del perfil, SOTA-2026 §6 [?]): el artefacto que
|
|
29
|
+
produce `pasco build hotmart` ES lo que se pega. Este skill es la capa de
|
|
30
|
+
**juicio y narrativa** (D4/D5); el renderer determinista garantiza el mapa 1:1
|
|
31
|
+
con la fila de `bios`.
|
|
32
|
+
|
|
33
|
+
⚠️ **Superficie de pegado no verificada [?]**: ni el campo exacto del cuerpo
|
|
34
|
+
de perfil ni la URL del "Hotmart Space" (dirección web personalizada) están
|
|
35
|
+
documentados públicamente hoy (SOTA-2026 §5/§6). Verificá ambos en el
|
|
36
|
+
dashboard ANTES del primer paste — y reconciliá este skill con lo verificado.
|
|
37
|
+
|
|
38
|
+
## Regla de oro
|
|
39
|
+
|
|
40
|
+
> Los HECHOS son sagrados (byte-idénticos al SSOT); solo la HISTORIA varía.
|
|
41
|
+
|
|
42
|
+
- Nombres, fechas, DOIs, números, URLs: **idénticos** a `content/*.yaml`.
|
|
43
|
+
- Texto **plano** para el cuerpo de perfil: sin markdown, sin HTML — no hay
|
|
44
|
+
documentación de formato enriquecido para ese campo (SOTA-2026 §6 [?]);
|
|
45
|
+
asumí texto plano hasta verificar lo contrario.
|
|
46
|
+
- URLs SOLO de `identity.links` (regla drift). El host de la plataforma es
|
|
47
|
+
`hotmart.com` (sin guion) — pero la URL de Space tiene forma no verificada
|
|
48
|
+
[?]: no inventes URLs de perfil; dejá que el link canónico lo fije
|
|
49
|
+
`identity.links` después de verificar el Space real.
|
|
50
|
+
- Claims cuantitativos SOLO de `projects[].evidence` o `keywords.geo.claims`.
|
|
51
|
+
- **Sin promesas de resultados**: los ToU prohíben prometer ganancias o
|
|
52
|
+
resultados (ToU §1.4 [OFICIAL S2]) — el copy vende el trabajo y la
|
|
53
|
+
evidencia, nunca "ingresa X hacé esto".
|
|
54
|
+
|
|
55
|
+
## Fuente de datos
|
|
56
|
+
|
|
57
|
+
Lee el workspace (ruta del `.pascorc` o `--workspace`):
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
content/identity.yaml → nombre, email de contacto (hecho, v1.5), links canónicos
|
|
61
|
+
content/positioning.yaml → statement + ángulos por audiencia + anclas GEO
|
|
62
|
+
content/projects.yaml → qué construís (status + evidence verificable)
|
|
63
|
+
content/skills.yaml → stack con pesos por plataforma
|
|
64
|
+
content/bios.yaml → textos base por plataforma (punto de partida)
|
|
65
|
+
content/keywords.yaml → SEO + GEO (associations/claims)
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Estrategia comunicativa (3 preguntas — storefront ≠ tip jar)
|
|
69
|
+
|
|
70
|
+
1. **¿Quién lee?** Compradores que llegaron de tus otros canales decididos a
|
|
71
|
+
comprar (o comparar); LLMs que citan perfiles.
|
|
72
|
+
2. **¿Qué quiero que hagan?** UNA acción: explorar y comprar un producto
|
|
73
|
+
concreto. Hotmart es tienda — el frame es "esto resuelve X", no "apoyá mi
|
|
74
|
+
trabajo" (ese frame es de `kofi`/`patreon`).
|
|
75
|
+
3. **¿Cuál es mi señal más fuerte?** El producto con evidencia: qué
|
|
76
|
+
construis AHORA y qué resultado verificable tiene cada producto.
|
|
77
|
+
|
|
78
|
+
Liderá con #3 filtrado por #1. El producto se descubre en el marketplace y en
|
|
79
|
+
tus otros canales; el cuerpo de perfil es el cierre de confianza, no el
|
|
80
|
+
descubrimiento. [MI]
|
|
81
|
+
|
|
82
|
+
## Estructura del cuerpo (prosa plana, ≤ 3 párrafos)
|
|
83
|
+
|
|
84
|
+
1. **Hook (2–3 líneas)**: quién sos y qué resuelve tu catálogo — del
|
|
85
|
+
`statement` reescrito en prosa; teje las anclas GEO sin stuffing.
|
|
86
|
+
2. **El producto y su evidencia (2–4 líneas)**: UNA evidencia verificable de
|
|
87
|
+
`evidence[]`. "Este producto hace X" en concreto, con el dato del SSOT.
|
|
88
|
+
3. **CTA único**: explorar los productos (el catálogo ES el CTA). Email de
|
|
89
|
+
contacto como hecho (de `identity.email`) si aplica — texto plano.
|
|
90
|
+
|
|
91
|
+
Lo demás NO va en el cuerpo: links de producto viven en
|
|
92
|
+
`projects[].links`/`identity.links` (regla drift — y la URL de producto
|
|
93
|
+
verificada es `hotmart.com/<lang>/marketplace/products/<slug>/<ID>`,
|
|
94
|
+
SOTA-2026 §5); la estructura de la página de creador (banner, avatar, links
|
|
95
|
+
sociales si existen) se verifica en el dashboard en el primer paste y se
|
|
96
|
+
documenta acá con fuente.
|
|
97
|
+
|
|
98
|
+
## Límites (resumen con fuente — SOTA-2026 §3)
|
|
99
|
+
|
|
100
|
+
- Cuerpo de perfil: **sin límite documentado** [?] — no hay artículo del Help
|
|
101
|
+
Center que documente el campo. Soft-cap en checks.yaml (curación, no hard
|
|
102
|
+
rule).
|
|
103
|
+
- Fees (transparencia para fijar precio — fuera del renderer): fijo por
|
|
104
|
+
transacción BRL 2.49 / USD 1.00 / EUR 1.00 + servicio 9.9% (20% en
|
|
105
|
+
micro-transacciones ≤ BRL 10 / USD 15 / EUR 15) [OFICIAL S3 §5.2–§5.4].
|
|
106
|
+
- Sin cuota mensual/anual [OFICIAL S1].
|
|
107
|
+
- Payout a Ecuador: **[?]** — el rail de Hotpay hacia bancos ecuatorianos no
|
|
108
|
+
está documentado (SOTA-2026 §4); el ítem de verificación vive en la
|
|
109
|
+
instancia venture. NO vendas/prometas nada dependiente de payout hasta
|
|
110
|
+
resolverlo.
|
|
111
|
+
|
|
112
|
+
## Variantes (flujo refine)
|
|
113
|
+
|
|
114
|
+
- Producí **N variantes** (`--variants N`, default 3) con ángulos distintos:
|
|
115
|
+
1. **Stewardship** (default): lidera con el trabajo vivo + qué compra el
|
|
116
|
+
lector.
|
|
117
|
+
2. **Práctica**: lidera con el resultado del producto (antes/después,
|
|
118
|
+
problema→solución) para compradores pragmáticos.
|
|
119
|
+
3. **Soberanía**: lidera con la tesis (IA soberana / economía agéntica),
|
|
120
|
+
el catálogo como infraestructura independiente.
|
|
121
|
+
- Cada variante: `variantId` = `hotmart-<lang>-<n>` (ej. `hotmart-es-1`).
|
|
122
|
+
- El humano elige; se registra con `pasco refine hotmart --choose <id>` →
|
|
123
|
+
escribe `content/active.yaml`; el paste posterior se marca con
|
|
124
|
+
`pasco status --mark <ledgerKey> hotmart` (D18).
|
|
125
|
+
|
|
126
|
+
## Verificación (checks)
|
|
127
|
+
|
|
128
|
+
- `pasco validate` exit 0 (schema + drift 0 + geo).
|
|
129
|
+
- Facts byte-idénticos: cruzá cada hecho del cuerpo contra el YAML.
|
|
130
|
+
- Plain text: cero markdown `[..](..)`, cero HTML.
|
|
131
|
+
- Links: 0 links inline en el cuerpo (viven en `identity.links`); el host
|
|
132
|
+
canónico es `hotmart.com`.
|
|
133
|
+
- Idioma: la bio del `--lang` solicitado existe (compile NO hace fallback por
|
|
134
|
+
fila — artefacto vacío significa gap visible, no silencio).
|
|
135
|
+
- URL viva: la página resuelve en browser (el SPA 404-a rutas adivinadas —
|
|
136
|
+
verificá el Space real desde el dashboard, SOTA-2026 §5).
|
|
137
|
+
|
|
138
|
+
## GEO (consistencia = citabilidad)
|
|
139
|
+
|
|
140
|
+
- Los hechos deben coincidir byte a byte con CV/LinkedIn/GitHub (fechas,
|
|
141
|
+
roles, papers) — el comprador que cruza canales debe encontrar UNA persona.
|
|
142
|
+
- Sin directorio público de perfiles documentado [?] — la citabilidad viene
|
|
143
|
+
de que otros canales referencien la tienda; manté los anclas semánticos del
|
|
144
|
+
SSOT.
|
|
145
|
+
- Host único: `hotmart.com` — jamás emitir URLs de perfil cuya forma no esté
|
|
146
|
+
verificada (SOTA-2026 §5 [?]); el link canónico entra a `identity.links`
|
|
147
|
+
cuando el Space real esté verificado.
|
|
148
|
+
- **i18n**: Hotmart localiza el marketplace por `<lang>` (`/en/`, `/pt-br/`,
|
|
149
|
+
`/es/` — SOTA-2026 §5) — priorizá `es` para audiencia EC/ES, `en` como
|
|
150
|
+
requerido por D8/§11.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# checks.yaml — criterios machine-readable para `pasco check hotmart`
|
|
2
|
+
# (unión con content/checks.yaml del workspace; misma rule catalog que el schema).
|
|
3
|
+
#
|
|
4
|
+
# Fuente de los valores: research/SOTA-2026.md (todas las fuentes fechadas
|
|
5
|
+
# 2026-10-05). Hotmart NO documenta límite para el cuerpo de perfil [?] — no
|
|
6
|
+
# hay artículo del Help Center que describa el campo (SOTA-2026 §6); el
|
|
7
|
+
# max-chars es soft-cap curacional, no hard rule.
|
|
8
|
+
|
|
9
|
+
- id: h-bio-soft
|
|
10
|
+
platform: hotmart
|
|
11
|
+
rule: max-chars
|
|
12
|
+
value: 500
|
|
13
|
+
note: "Soft-cap curacional del cuerpo de perfil — Hotmart no documenta el campo ni un límite [?]; curation, no hard rule (SOTA-2026 §6)."
|
|
14
|
+
|
|
15
|
+
- id: h-facts-identity
|
|
16
|
+
platform: hotmart
|
|
17
|
+
rule: fact-present
|
|
18
|
+
value: true
|
|
19
|
+
note: "Hechos del cuerpo byte-idénticos al SSOT (D4); el cuerpo es el cierre de confianza del storefront (SOTA-2026 §1)."
|
|
20
|
+
|
|
21
|
+
- id: h-links-identity
|
|
22
|
+
platform: hotmart
|
|
23
|
+
rule: link-in-identity
|
|
24
|
+
value: true
|
|
25
|
+
note: "Los links (tienda verificada, productos hotmart.com/<lang>/marketplace/...) viven en identity.links; la URL del Space queda fuera hasta verificarse (SOTA-2026 §5 [?])."
|
|
26
|
+
|
|
27
|
+
- id: h-geo-consistent
|
|
28
|
+
platform: hotmart
|
|
29
|
+
rule: geo-consistent
|
|
30
|
+
value: true
|
|
31
|
+
note: "Hechos consistentes con CV/LinkedIn/GitHub = citabilidad; compradores y LLMs cruzan canales (SOTA-2026 §7)."
|
|
32
|
+
|
|
33
|
+
- id: h-live
|
|
34
|
+
platform: hotmart
|
|
35
|
+
rule: url-live
|
|
36
|
+
value: true
|
|
37
|
+
note: "Página resuelve en browser — el SPA 404-a rutas adivinadas; verificá el Space real desde el dashboard (SOTA-2026 §5)."
|
|
38
|
+
|
|
39
|
+
- id: h-lang
|
|
40
|
+
platform: hotmart
|
|
41
|
+
rule: lang-present
|
|
42
|
+
value: en
|
|
43
|
+
note: "EN requerido (D8/§11); compile no hace fallback por fila de bios — artefacto vacío = gap visible. ES priorizado para audiencia EC/ES (marketplace /es/)."
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Playbook — deploy Hotmart (paste, D9)
|
|
2
|
+
|
|
3
|
+
Superficie: página de creador de Hotmart (storefront + Members Area) — **sin
|
|
4
|
+
API documentada para el cuerpo del perfil** (SOTA-2026 §6 [?]). El deploy es
|
|
5
|
+
manual; el ledger lo registra `pasco status --mark`.
|
|
6
|
+
|
|
7
|
+
⚠️ **Primer paste = verificación de superficie**: el campo exacto del cuerpo
|
|
8
|
+
de perfil y la URL del Hotmart Space están sin verificar [?] (SOTA-2026
|
|
9
|
+
§5/§6). En el primer paste documentá (en este archivo, con fuente + fecha)
|
|
10
|
+
dónde se pega y qué URL pública resulta — eso convierte el [?] en dato.
|
|
11
|
+
|
|
12
|
+
## Pre-paste
|
|
13
|
+
|
|
14
|
+
1. `pasco validate` — exit 0 (schema + drift + geo).
|
|
15
|
+
2. `pasco build hotmart --lang <lang>` — escribe `profiles/hotmart/README.md`;
|
|
16
|
+
ese archivo ES el texto a pegar (plano, 1 fila de bios — long > medium >
|
|
17
|
+
short).
|
|
18
|
+
3. Verificá el link canónico: `identity.links` debe contener la URL pública
|
|
19
|
+
de tu tienda cuando esté verificada (host `hotmart.com`). Mientras la URL
|
|
20
|
+
de Space esté sin verificar [?], NO la inventes — dejá el link fuera y
|
|
21
|
+
agrégalo con la URL real copiada del dashboard (regla drift).
|
|
22
|
+
4. **Gate de negocio (EC)**: el payout a banco ecuatoriano está `[?]`
|
|
23
|
+
(SOTA-2026 §4) — el ítem de verificación vive en la instancia venture
|
|
24
|
+
(issue #137). Un paste de perfil no depende del payout; una venta, sí.
|
|
25
|
+
|
|
26
|
+
## Paste (dashboard)
|
|
27
|
+
|
|
28
|
+
Orden sugerido (a verificar en el primer paste — SOTA-2026 §5/§6):
|
|
29
|
+
|
|
30
|
+
1. Ingresá a `app.hotmart.com` con la cuenta de creador.
|
|
31
|
+
2. Localizá la configuración de página/tienda del creador (el producto
|
|
32
|
+
"Hotmart Space" del pricing — dirección web personalizada [?]) y pegá el
|
|
33
|
+
contenido de `profiles/hotmart/README.md` tal cual en el campo de
|
|
34
|
+
descripción/perfil (texto plano).
|
|
35
|
+
3. Verificá cómo queda el render: si el campo aplica formato enriquecido,
|
|
36
|
+
documentalo acá (con fuente) — el renderer asume texto plano.
|
|
37
|
+
4. Los links de producto NO van en el cuerpo: pertenecen a
|
|
38
|
+
`identity.links`/`projects[].links` del SSOT y a los campos de producto
|
|
39
|
+
del dashboard.
|
|
40
|
+
|
|
41
|
+
## Post-paste (verificación + ledger)
|
|
42
|
+
|
|
43
|
+
1. Verificá la página pública en **browser**: cuerpo visible, sin markdown
|
|
44
|
+
leaks, sin caracteres de escape raros.
|
|
45
|
+
2. Marcá el ledger: `pasco status --mark bios:hotmart.long@en hotmart`
|
|
46
|
+
(ledgerKey = la fila de bios exacta que se pegó).
|
|
47
|
+
3. `pasco status hotmart` — in-sync. `pasco diff` vacío para esa unidad.
|
|
48
|
+
|
|
49
|
+
## No hacerlo a mano en el workspace
|
|
50
|
+
|
|
51
|
+
- El paste solo se registra vía `--mark`; editar `content/deployments.yaml`
|
|
52
|
+
a mano rompe el contrato D18 (solo `pasco` escribe el ledger).
|
|
53
|
+
- No pegues variantes no elegidas (solo la fila activa de bios es deployable).
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
# SOTA Hotmart — versioned research (2026-10-05)
|
|
2
|
+
|
|
3
|
+
Research date: 2026-10-05 (UTC). Same date for every source (each URL fetched
|
|
4
|
+
2026-10-05 by this session, unless noted). Tags: `[OFICIAL]` = Hotmart's own
|
|
5
|
+
docs/pages/legal texts (primary) · `[WEB]` = primary URL fetched (incl. via
|
|
6
|
+
reader mirror) · `[BENCHMARK]` = real-profile observation · `[?]` = not
|
|
7
|
+
calibratable / not documented.
|
|
8
|
+
|
|
9
|
+
Method / caveats: the four public legal/pricing pages were fetched plain
|
|
10
|
+
(hotmart.com serves them server-rendered). The Help Center
|
|
11
|
+
(help.hotmart.com) is a JS-rendered SPA — pages were verified through a
|
|
12
|
+
headless reader mirror (`r.jina.ai/<url>`, marked `[WEB]`); its search API
|
|
13
|
+
resolved with the `?query=` parameter (EN + pt-BR). `developers.hotmart.com`
|
|
14
|
+
docs render a JS shell on the root and 403 (CloudFront) on deep paths — the
|
|
15
|
+
API catalog could not be enumerated today. The canonical home for the shared
|
|
16
|
+
EC-payout verification item is the venture instance
|
|
17
|
+
(`venture-instance-pasco/docs/research/`) — issue #137.
|
|
18
|
+
|
|
19
|
+
## 1. What Hotmart is — platform identity
|
|
20
|
+
|
|
21
|
+
- Digital-products storefront + memberships + affiliate program; serves the
|
|
22
|
+
Spanish/Portuguese-speaking markets (root page locales: `/pt-br`, `/es`,
|
|
23
|
+
`/co`, `/mx`, `/la`). Offices on the footer: Belo Horizonte, Madrid,
|
|
24
|
+
Ámsterdam, Bogotá, Ciudad de México, Nueva York. [OFICIAL S1, S9]
|
|
25
|
+
- Hotmart's OWN market framing (marketing self-description, root page fetched
|
|
26
|
+
2026-10-05): "Join the world's largest platform for digital products"
|
|
27
|
+
(hero), and FAQ #02: "Hotmart is a global, all-in-one platform, Latin
|
|
28
|
+
America's leader for selling digital and physical products online, with a
|
|
29
|
+
strong focus on e-learning"; self-reported counters +200K creators, over
|
|
30
|
+
$10B in sales, +25M buyers. [OFICIAL S9 — VENDOR MARKETING, not an
|
|
31
|
+
independent measure: quote it as the vendor's claim or leave it out; an
|
|
32
|
+
independently-measured "largest for ES/PT markets" claim is `[?]` (no
|
|
33
|
+
ranking source found 2026-10-05) and was deliberately NOT carried into the
|
|
34
|
+
schema/SPEC/CHANGELOG contract text. Issue #137 framed it as fact without a
|
|
35
|
+
source — corrected here per the repo's evidence rule.]
|
|
36
|
+
- Memberships: the Payment Policy's recurring billing "may also be called a
|
|
37
|
+
'subscription'"; Members Area is a first-class product surface (pricing nav:
|
|
38
|
+
"Members area"). [OFICIAL S1, S3 §9.1]
|
|
39
|
+
- Pricing model: "No monthly or annual fees. No limits to selling around the
|
|
40
|
+
world. Just pay a transaction fee on each sale you make." [OFICIAL S1]
|
|
41
|
+
- Fee-figure discrepancy lead: FAQ #06 states "9.9% + R$1 per approved sale"
|
|
42
|
+
for revenue up to five figures, with "tiered — the more you earn, the less
|
|
43
|
+
you pay" fees, while Payment Policy §5.2 Table 1 lists a BRL 2.49 fixed fee.
|
|
44
|
+
The FAQ's own "fees page" link likely carries the tier table; §5.2 is the
|
|
45
|
+
binding legal text. Recorded as a lead — re-source before any quoted fee
|
|
46
|
+
claim for BRL offers. [OFICIAL S9 vs S3 §5.2] [?]
|
|
47
|
+
|
|
48
|
+
## 2. Eligibility (the #133 gate — EC-relevant facts)
|
|
49
|
+
|
|
50
|
+
- ToU §A: "These terms govern the access or use of the resources contained on
|
|
51
|
+
the Platform for all Users, anywhere in the world. Certain features might
|
|
52
|
+
not be available in all territories and to all Users." [OFICIAL S2]
|
|
53
|
+
- ToU §H: the only territorial exclusions are sanctions-based — OFAC (US
|
|
54
|
+
Office of Foreign Assets Control), the UK Sanctions List, the UN Security
|
|
55
|
+
Council Sanctions List. Ecuador is not on those lists. [OFICIAL S2]
|
|
56
|
+
[INF: eligibility as written covers an Ecuador-resident creator; the payout
|
|
57
|
+
rail (§4 below) is the open datum, not eligibility.]
|
|
58
|
+
- ToU §2.8 (Banking Information): after the first sale the creator must
|
|
59
|
+
provide banking information "indicating the bank account in their name";
|
|
60
|
+
registering accounts "located outside the Creator…'s country of residence
|
|
61
|
+
is also prohibited". [OFICIAL S2]
|
|
62
|
+
- Contracting entity varies by residence/currency: Hotmart BR (BRL between
|
|
63
|
+
Brazil-resident users), Hotmart USA (USD/US), Hotmart BV (NL) for
|
|
64
|
+
everything else — an EC creator contracts with Hotmart BV. [OFICIAL S2 §C]
|
|
65
|
+
- ToU §1.4 ("No Promise of Performance, Gain, or Results from the Use of the
|
|
66
|
+
Platform"): Hotmart does not promise results, and neither may creators or
|
|
67
|
+
affiliates — "no Creator, Co-producer or Affiliate can promise any
|
|
68
|
+
performance, gain, or an unobtainable result of any nature". This is the
|
|
69
|
+
clause behind the skill's copy rule (SKILL.md §Regla de oro — no
|
|
70
|
+
results-promising prose). [OFICIAL S2 §1.4]
|
|
71
|
+
|
|
72
|
+
## 3. Fees (Payment Policy, version updated 2026-09-21 — fetched 2026-10-05)
|
|
73
|
+
|
|
74
|
+
The two creator fees are charged cumulatively, only when a product sells. [OFICIAL S3 §5.1]
|
|
75
|
+
|
|
76
|
+
| Fee | Value | Scope | Source |
|
|
77
|
+
|---|---|---|---|
|
|
78
|
+
| Fixed Fee per Transaction | BRL 2.49 / USD 1.00 / EUR 1.00 | by the BUYER's payment currency (Table 1) | [OFICIAL S3 §5.2] |
|
|
79
|
+
| Service Fee | 20% of the product price up to BRL 10.00; **9.9%** from BRL 10.01 | §5.3 states the threshold in BRL; §5.4 generalizes: offers ≤ USD 15 / EUR 15 are micro-transactions — fixed fee USD 0.10 / EUR 0.10 + 9.9% | [OFICIAL S3 §5.3–§5.4] |
|
|
80
|
+
| SeQura (ES installment method) | 1% of the sales price | only for Spanish buyers, SeQura-registered creators | [OFICIAL S3 §8.3] |
|
|
81
|
+
| Withdrawal minimum (BRL) | BRL 2.00 + a BRL 1.99 withdrawal fee | BRL offers — FAQ #08; §12 (the binding text) was truncated in today's fetch, so treat this as the FAQ figure | [OFICIAL S9 FAQ #08] |
|
|
82
|
+
| Withdrawal deadlines | BRL sales: 30 calendar days after the sale (PIX/Boleto/Hotmart balance: ~2 calendar days); other currencies: 15 calendar days (warranty period) | FAQ #08; §12 truncated | [OFICIAL S9 FAQ #08] |
|
|
83
|
+
|
|
84
|
+
Caveat: §5.3's threshold is BRL-denominated even for other offer currencies;
|
|
85
|
+
§5.4's micro-transaction table is the USD/EUR generalization. A future
|
|
86
|
+
surface-fee claim should quote §5.4 for USD/EUR offers, §5.3 for BRL.
|
|
87
|
+
[OFICIAL S3] [MI: reading]
|
|
88
|
+
|
|
89
|
+
## 4. Payout rail — the deciding datum is still `[?]`
|
|
90
|
+
|
|
91
|
+
- What is known: after the first sale, the creator registers a bank account
|
|
92
|
+
in their own name in their country of residence (ToU §2.8 — third-party and
|
|
93
|
+
out-of-residence accounts are prohibited). Hotpay processes payments
|
|
94
|
+
"anywhere in the world" (Payment Policy §A) with currency conversion rules
|
|
95
|
+
(§4); withdrawal minimums/deadlines are in the FAQ (§3 table, S9 FAQ #08) —
|
|
96
|
+
§12 (the binding text) was truncated in today's fetch. [OFICIAL S2, S3, S9]
|
|
97
|
+
- What is NOT documented anywhere fetched: whether Hotpay's bank rails settle
|
|
98
|
+
to **Ecuadorian** banks. The legal texts do not enumerate supported payout
|
|
99
|
+
countries; the Help Center withdrawal article was not reachable today
|
|
100
|
+
(JS-rendered SPA; EN + pt-BR searches returned no Space/withdrawal
|
|
101
|
+
article). **Same role as the PayPal-EC datum for `kofi`/`payhip` in #133 —
|
|
102
|
+
carried as `[?]` with the verification item in the venture instance.** [?]
|
|
103
|
+
|
|
104
|
+
## 5. URL surfaces (verified shapes — and the open Space shape)
|
|
105
|
+
|
|
106
|
+
| Surface | Shape | Status |
|
|
107
|
+
|---|---|---|
|
|
108
|
+
| Marketplace product page (EN) | `hotmart.com/en/marketplace/products/<slug>/<ID>` | verified live 2026-10-05 [OFICIAL S7] |
|
|
109
|
+
| Marketplace product page (PT/ES) | `hotmart.com/pt-br/marketplace/produtos/<slug>/<ID>` · `hotmart.com/es/marketplace/productos/<slug>/<ID>` | verified live 2026-10-05 [OFICIAL S7] |
|
|
110
|
+
| Hotmart Space ("personalized web address" of the creator's storefront page — pricing page S1) | **shape `[?]`** — probes of `/space`, `/profile`, `/espaco` 404'd the JS-rendered SPA (issue #137, 2026-10-05); Help Center has no "Hotmart Space" article indexed (EN + pt-BR, reader mirror) [WEB S5]; `space.hotmart.com` DNS-resolves and redirects to the apex (not a profile shape) [WEB S6] | `[?]` — the skill's follow-up owns sourcing it |
|
|
111
|
+
| Hotmart Pages (landing-page builder — DIFFERENT product) | `<brand>.hotmart.host/<subdir>` or custom domain | verified via Help Center article [OFICIAL S5] — not the profile surface, excluded from drift on purpose |
|
|
112
|
+
|
|
113
|
+
Drift implication (engine side, this repo): `hotmart.com` is the platform
|
|
114
|
+
host (PLATFORM_HOSTS + HANDLE_HOSTS) — host-consistency only. No
|
|
115
|
+
PLATFORM_SUBDOMAIN_HOSTS entry: no verified profile subdomain shape.
|
|
116
|
+
[MI, 2026-10-05]
|
|
117
|
+
|
|
118
|
+
## 6. Deploy surface — the paste target is `[?]`
|
|
119
|
+
|
|
120
|
+
- Hotmart's public APIs (developers.hotmart.com) cover sales/products
|
|
121
|
+
management per issue #137's verification; the docs were not enumerable
|
|
122
|
+
today (root JS-shell, deep paths 403 CloudFront) → treat the "no management
|
|
123
|
+
API for the profile body" claim as `[?]` until the skill follow-up
|
|
124
|
+
verifies. [WEB S8] + issue #137
|
|
125
|
+
- No public documentation of a profile About/body field was found (the Help
|
|
126
|
+
Center has no such article indexed today). The renderer therefore emits the
|
|
127
|
+
paste source and the playbook defers the exact paste-target field to the
|
|
128
|
+
skill follow-up. [?]
|
|
129
|
+
|
|
130
|
+
## 7. Source list
|
|
131
|
+
|
|
132
|
+
| # | Source | Fetched |
|
|
133
|
+
|---|---|---|
|
|
134
|
+
| S1 | `https://hotmart.com/en/pricing` | 2026-10-05 |
|
|
135
|
+
| S2 | `https://hotmart.com/en/legal/terms-of-use` (version updated 2026-09-21) | 2026-10-05 |
|
|
136
|
+
| S3 | `https://hotmart.com/en/legal/payments-policy` (version updated 2026-09-21) | 2026-10-05 |
|
|
137
|
+
| S4 | `https://hotmart.com/en/legal` (Terms and Policies index) | 2026-10-05 |
|
|
138
|
+
| S5 | `https://help.hotmart.com/en` (+ searches EN/pt-BR, reader mirror `r.jina.ai`) | 2026-10-05 |
|
|
139
|
+
| S6 | `https://space.hotmart.com/` (DNS/redirect probe) | 2026-10-05 |
|
|
140
|
+
| S7 | `https://hotmart.com/en/marketplace` + product pages | 2026-10-05 |
|
|
141
|
+
| S8 | `https://developers.hotmart.com/docs/en/` (root JS-shell; `api-basics` 403) | 2026-10-05 |
|
|
142
|
+
| S9 | `https://hotmart.com/en` (root: hero + FAQ #02/#06/#08 — vendor market framing, fee-tier and withdrawal figures) | 2026-10-05 |
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: kofi-profile
|
|
3
|
+
description: >
|
|
4
|
+
Transforma los hechos del SSOT (profile-data/content/*.yaml) en el texto
|
|
5
|
+
About de la página de creador de Ko-fi — texto PLANO listo para pegar, no
|
|
6
|
+
markdown ni dump. Patrón: funding-page de creador (research/SOTA-2026.md).
|
|
7
|
+
El agente ejecutante produce N variantes; el humano elige; la elegida se
|
|
8
|
+
registra como variante activa (content/active.yaml) y el paste se marca en
|
|
9
|
+
el ledger (D18) con `pasco status --mark`.
|
|
10
|
+
model: juicio (frontier) — los ángulos de soporte/cita no son delegables a modelos pequeños
|
|
11
|
+
applies_to: kofi
|
|
12
|
+
projection: agent-agnostic (AionUi, OpenHands, Claude Code, Cursor, pi…)
|
|
13
|
+
version: 0.1.0
|
|
14
|
+
status: draft
|
|
15
|
+
sources: skills/kofi/research/SOTA-2026.md
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# Ko-fi About — skill de comunicación
|
|
19
|
+
|
|
20
|
+
## Misión
|
|
21
|
+
|
|
22
|
+
Convertir los HECHOS del workspace (SSOT) en el texto **About** de la página
|
|
23
|
+
Ko-fi: qué hacés, qué financia cada aporte, y UNA acción (apoyar). Ko-fi es
|
|
24
|
+
plataforma **paste** (D9 — sin API de deploy, S18): el artefacto que produce
|
|
25
|
+
`pasco build kofi` ES lo que se pega. Este skill es la capa de **juicio y
|
|
26
|
+
narrativa** (D4/D5); el renderer determinista garantiza el mapa 1:1 con la
|
|
27
|
+
fila de `bios`.
|
|
28
|
+
|
|
29
|
+
## Regla de oro
|
|
30
|
+
|
|
31
|
+
> Los HECHOS son sagrados (byte-idénticos al SSOT); solo la HISTORIA varía.
|
|
32
|
+
|
|
33
|
+
- Nombres, fechas, DOIs, números, URLs: **idénticos** a `content/*.yaml`.
|
|
34
|
+
- Texto **plano** para el About: sin markdown, sin HTML, sin links inline —
|
|
35
|
+
el card About se renders como texto plano y los links viven en el feature
|
|
36
|
+
**Social links** (hasta 15, `https://` completo) (SOTA-2026 §2, [WEB S12]).
|
|
37
|
+
- URLs SOLO de `identity.links` (regla drift). No inventes links.
|
|
38
|
+
- Claims cuantitativos SOLO de `projects[].evidence` o `keywords.geo.claims`.
|
|
39
|
+
|
|
40
|
+
## Fuente de datos
|
|
41
|
+
|
|
42
|
+
Lee el workspace (ruta del `.pascorc` o `--workspace`):
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
content/identity.yaml → nombre, email de contacto (hecho, v1.5), links canónicos
|
|
46
|
+
content/positioning.yaml → statement + ángulos por audiencia + anclas GEO
|
|
47
|
+
content/projects.yaml → qué construís (status + evidence verificable)
|
|
48
|
+
content/skills.yaml → stack con pesos por plataforma
|
|
49
|
+
content/bios.yaml → textos base por plataforma (punto de partida)
|
|
50
|
+
content/keywords.yaml → SEO + GEO (associations/claims)
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Estrategia comunicativa (3 preguntas — SOTA-2026 §7)
|
|
54
|
+
|
|
55
|
+
1. **¿Quién lee?** Lectores que ya te descubrieron por otro canal y evalúan
|
|
56
|
+
apoyar; personas que compartieron el link (preview social).
|
|
57
|
+
2. **¿Qué quiero que hagan?** UNA acción: apoyar (one-off o membresía) — con
|
|
58
|
+
confianza de que el dinero financia trabajo concreto.
|
|
59
|
+
3. **¿Cuál es mi señal más fuerte?** El trabajo activo con evidencia: qué
|
|
60
|
+
construis AHORA y qué aporta cada contribución (stewardship → sostenibilidad).
|
|
61
|
+
|
|
62
|
+
Liderá con #3 filtrado por #1. La página carga a mitad de la hero ([OFICIAL
|
|
63
|
+
S5]): las primeras 2–3 líneas del About son el "above the fold" del About.
|
|
64
|
+
|
|
65
|
+
## Estructura del About (prosa plana, ≤ 3 párrafos)
|
|
66
|
+
|
|
67
|
+
1. **Hook (2–3 líneas)**: quién sos y qué construís ahora — del `statement`
|
|
68
|
+
reescrito en prosa; teje las anclas GEO sin stuffing.
|
|
69
|
+
2. **Qué financia cada aporte (2–4 líneas)**: el trabajo vivo con UNA
|
|
70
|
+
evidencia verificable (de `evidence[]`). "Cada aporte financia X" en
|
|
71
|
+
concreto, no en genérico.
|
|
72
|
+
3. **CTA único**: apoyar (la página ES el CTA). Email de contacto como hecho
|
|
73
|
+
(de `identity.email`) si aplica — texto plano, la plataforma no lo hace
|
|
74
|
+
clickable dentro del bio [WEB S12]; el canalClickable es Social links.
|
|
75
|
+
|
|
76
|
+
Lo demás NO va en el About: hasta 15 links al feature **Social links**
|
|
77
|
+
([OFICIAL S3]); nombre display en Settings → Profile; status ≤40 chars como
|
|
78
|
+
one-liner visible (campo separado, **limitado a 40** [OFICIAL S1]); preview
|
|
79
|
+
social separado del About ([OFICIAL S4]).
|
|
80
|
+
|
|
81
|
+
## Límites (resumen con fuente — SOTA-2026 §1)
|
|
82
|
+
|
|
83
|
+
- About/bio: **sin límite documentado** por Ko-fi [?] — soft-cap en checks.yaml
|
|
84
|
+
(curation, no hard rule). El card trunca tras unas líneas con "Show more"
|
|
85
|
+
[BENCHMARK S12]: lo esencial va primero.
|
|
86
|
+
- Status: **≤ 40 chars** [OFICIAL S1] (fuera del renderer; manual).
|
|
87
|
+
- Membership terms (no bio): 10,000 chars [OFICIAL S16].
|
|
88
|
+
|
|
89
|
+
## Variantes (flujo refine)
|
|
90
|
+
|
|
91
|
+
- Producí **N variantes** (`--variants N`, default 3) con ángulos distintos:
|
|
92
|
+
1. **Stewardship** (default): lidera con el trabajo vivo + qué financia.
|
|
93
|
+
2. **Soberanía**: lidera con la tesis (IA soberana / economía agéntica),
|
|
94
|
+
el aporte como infraestructura independiente.
|
|
95
|
+
3. **Transparencia**: lidera con el mapa de uso del dinero (qué cubre
|
|
96
|
+
cada peso) para donantes pragmáticos.
|
|
97
|
+
- Cada variante: `variantId` = `kofi-<lang>-<n>` (ej. `kofi-es-1`).
|
|
98
|
+
- El humano elige; se registra con `pasco refine kofi --choose <id>` → escribe
|
|
99
|
+
`content/active.yaml`; el paste posterior se marca con
|
|
100
|
+
`pasco status --mark <ledgerKey> kofi` (D18).
|
|
101
|
+
|
|
102
|
+
## Verificación (checks)
|
|
103
|
+
|
|
104
|
+
- `pasco validate` exit 0 (schema + drift 0 + geo).
|
|
105
|
+
- Facts byte-idénticos: cruzá cada hecho del About contra el YAML.
|
|
106
|
+
- Plain text: cero markdown `[..](..)`, cero HTML.
|
|
107
|
+
- Links: 0 links inline en el About (van al Social-links feature); el link
|
|
108
|
+
canónico `ko-fi.com/<handle>` vive en `identity.links` (regla drift).
|
|
109
|
+
- Idioma: la bio del `--lang` solicitado existe (compile NO hace fallback por
|
|
110
|
+
fila — artefacto vacío significa gap visible, no silencio).
|
|
111
|
+
- URL viva: la página resuelve en browser (Cloudflare 403 para fetchers
|
|
112
|
+
planos — usar browser para la verificación live, SOTA-2026 §5).
|
|
113
|
+
|
|
114
|
+
## GEO (consistencia = citabilidad)
|
|
115
|
+
|
|
116
|
+
- El About es legible por LLMs con fetcher browser (tab About, HTML renderizado
|
|
117
|
+
[WEB S12]; el HTML crudo sin JS quedó sin verificar [?]). Los hechos deben
|
|
118
|
+
coincidir byte a byte con CV/LinkedIn/GitHub (fechas, roles, papers).
|
|
119
|
+
- Sin directorio público de perfiles ni search documentado [OFICIAL S14] — la
|
|
120
|
+
citabilidad viene del hecho de que otros canales (X, Substack, README)
|
|
121
|
+
referencian la página de apoyo; manté los anclas semánticos del SSOT.
|
|
122
|
+
- Host único: `ko-fi.com` — `kofi.com` NO resuelve (NXDOMAIN) [WEB S17];
|
|
123
|
+
jamás emitir ni registrar URL con el host sin guion.
|
|
124
|
+
- **Rename-drift**: el username se puede cambiar y los handles viejos siguen
|
|
125
|
+
resolviendo ([OFICIAL S6], [WEB S12]) — después de renombrar, re-generá el
|
|
126
|
+
preview social ([OFICIAL S4]) y verificá que identity.links apunte al
|
|
127
|
+
handle vigente antes de cada re-paste.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# checks.yaml — criterios machine-readable para `pasco check kofi`
|
|
2
|
+
# (unión con content/checks.yaml del workspace; misma rule catalog que el schema).
|
|
3
|
+
#
|
|
4
|
+
# Fuente de los valores: research/SOTA-2026.md (todas las fuentes fechadas
|
|
5
|
+
# 2026-10-05). Ko-fi NO documenta límite para el About [?] — el max-chars es
|
|
6
|
+
# soft-cap curacional, no hard rule (SOTA-2026 §1).
|
|
7
|
+
|
|
8
|
+
- id: k-bio-soft
|
|
9
|
+
platform: kofi
|
|
10
|
+
rule: max-chars
|
|
11
|
+
value: 500
|
|
12
|
+
note: "Soft-cap curacional del About — Ko-fi no documenta límite [?]; el card trunca con 'Show more' (SOTA-2026 §1, S12)."
|
|
13
|
+
|
|
14
|
+
- id: k-facts-identity
|
|
15
|
+
platform: kofi
|
|
16
|
+
rule: fact-present
|
|
17
|
+
value: true
|
|
18
|
+
note: "Hechos del About byte-idénticos al SSOT (D4); el About es el cuerpo del perfil (SOTA-2026 §5)."
|
|
19
|
+
|
|
20
|
+
- id: k-links-identity
|
|
21
|
+
platform: kofi
|
|
22
|
+
rule: link-in-identity
|
|
23
|
+
value: true
|
|
24
|
+
note: "El URL canónico ko-fi.com/<handle> vive en identity.links; host único con guion — kofi.com NO resuelve (SOTA-2026 §3, S17)."
|
|
25
|
+
|
|
26
|
+
- id: k-geo-consistent
|
|
27
|
+
platform: kofi
|
|
28
|
+
rule: geo-consistent
|
|
29
|
+
value: true
|
|
30
|
+
note: "Hechos consistentes con CV/LinkedIn/GitHub = citabilidad; el About es legible por LLMs con fetcher browser (SOTA-2026 §5)."
|
|
31
|
+
|
|
32
|
+
- id: k-live
|
|
33
|
+
platform: kofi
|
|
34
|
+
rule: url-live
|
|
35
|
+
value: true
|
|
36
|
+
note: "Página resuelve en browser — Cloudflare 403 para fetchers planos; verificación live con browser (SOTA-2026 §5)."
|
|
37
|
+
|
|
38
|
+
- id: k-lang
|
|
39
|
+
platform: kofi
|
|
40
|
+
rule: lang-present
|
|
41
|
+
value: en
|
|
42
|
+
note: "EN requerido (D8/§11); compile no hace fallback por fila de bios — artefacto vacío = gap visible."
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Playbook — deploy Ko-fi (paste, D9)
|
|
2
|
+
|
|
3
|
+
Superficie: página de creador `ko-fi.com/<handle>` — **sin API de deploy**
|
|
4
|
+
(webhooks de pago only, SOTA-2026 §6/S18). El deploy es manual; el ledger lo
|
|
5
|
+
registra `pasco status --mark`.
|
|
6
|
+
|
|
7
|
+
## Pre-paste
|
|
8
|
+
|
|
9
|
+
1. `pasco validate` — exit 0 (schema + drift + geo).
|
|
10
|
+
2. `pasco build kofi --lang <lang>` — escribe `profiles/kofi/README.md`; ese
|
|
11
|
+
archivo ES el texto a pegar (plano, 1 fila de bios — long > medium > short).
|
|
12
|
+
3. Verificá el handle vigente: `identity.links` debe contener el URL canónico
|
|
13
|
+
`https://ko-fi.com/<handle>` (host con guion; `kofi.com` NO resuelve,
|
|
14
|
+
S17). **Rename-drift**: si el username cambió, los handles viejos siguen
|
|
15
|
+
resolviendo (S6/S12) y el preview social puede mostrar el nombre viejo
|
|
16
|
+
(S4) — regenerá el preview y actualizá el link ANTES de pegar.
|
|
17
|
+
|
|
18
|
+
## Paste (dashboard)
|
|
19
|
+
|
|
20
|
+
Orden sugerido (SOTA-2026 §6):
|
|
21
|
+
|
|
22
|
+
1. **Settings → Profile** (`settings?tab=profile`): display name correcto +
|
|
23
|
+
"Your social links": hasta 15 links, `https://` completo (S3). El About NO
|
|
24
|
+
lleva links inline.
|
|
25
|
+
2. **`ko-fi.com/manage/mypage` → About**: pegá el contenido de
|
|
26
|
+
`profiles/kofi/README.md` tal cual (texto plano; el card trunca tras unas
|
|
27
|
+
líneas con "Show more" — lo primero es lo que se lee).
|
|
28
|
+
3. **Estado** ("Set a status", junto al perfil): ≤ 40 chars (S1) — one-liner
|
|
29
|
+
visible, manual, no vive en el SSOT.
|
|
30
|
+
4. **Settings → Page** (`settings?tab=page`): "Customize preview" (texto/imagen
|
|
31
|
+
del link-share) + Page focus. Preview ≠ About (S4).
|
|
32
|
+
5. **Cover image**: 3:1, 1200×400 px, < 8 MB, JPEG/PNG (S5).
|
|
33
|
+
|
|
34
|
+
## Post-paste (verificación + ledger)
|
|
35
|
+
|
|
36
|
+
1. Verificá la página pública en **browser** (Cloudflare 403 para fetchers
|
|
37
|
+
planos, SOTA-2026 §5): About visible, sin markdown leaks, links de Social
|
|
38
|
+
links anclados.
|
|
39
|
+
2. Marca el ledger: `pasco status --mark bios:kofi.long@en kofi`
|
|
40
|
+
(ledgerKey = la fila de bios exacta que se pegó).
|
|
41
|
+
3. `pasco status kofi` — in-sync. `pasco diff` vacío para esa unidad.
|
|
42
|
+
|
|
43
|
+
## No hacerlo a mano en el workspace
|
|
44
|
+
|
|
45
|
+
- El paste solo se registra vía `--mark`; editar `content/deployments.yaml`
|
|
46
|
+
a mano rompe el contrato D18 (solo `pasco` escribe el ledger).
|
|
47
|
+
- No pegues variantes no elegidas (solo la fila activa de bios es deployable).
|