diff --git a/backlog/features.json b/backlog/features.json
index 98c522e..b90561f 100644
--- a/backlog/features.json
+++ b/backlog/features.json
@@ -6832,13 +6832,15 @@
"description": "Product frontend price repeats IVA 10% in inclusive and breakdown labels; show the VAT rate only once without losing gross/net meaning.",
"priority": "med",
"risk": "low",
- "status": "pending",
+ "status": "done",
"created_at": "2026-08-22",
"gates": {
- "reviewer": false,
- "security": false,
- "qa": false
- }
+ "reviewer": true,
+ "security": true,
+ "qa": true,
+ "close": true
+ },
+ "completed_at": "2026-08-22T16:21:15Z"
}
]
}
diff --git a/project/frontend/src/app/products/[slug]/page.tsx b/project/frontend/src/app/products/[slug]/page.tsx
index 1beaf51..c12b719 100644
--- a/project/frontend/src/app/products/[slug]/page.tsx
+++ b/project/frontend/src/app/products/[slug]/page.tsx
@@ -146,7 +146,7 @@ export default async function ProductPage({ params }: Props) {
{formatPrice(grossCents)}
- inc. IVA {vatPercent}%
+ inc. IVA
{formatPrice(netCents)} sin IVA · IVA {vatPercent}%
diff --git a/work/artifacts/F-166/architect.md b/work/artifacts/F-166/architect.md
new file mode 100644
index 0000000..6a28288
--- /dev/null
+++ b/work/artifacts/F-166/architect.md
@@ -0,0 +1,3 @@
+# F-166 — Diseño
+
+No cambiar cálculos ni formato monetario. Eliminar únicamente `{vatPercent}%` del label junto al PVP bruto; conservarlo una vez en la línea neta/desglose.
diff --git a/work/artifacts/F-166/documenter.md b/work/artifacts/F-166/documenter.md
new file mode 100644
index 0000000..545d863
--- /dev/null
+++ b/work/artifacts/F-166/documenter.md
@@ -0,0 +1,3 @@
+# F-166
+
+El porcentaje de IVA aparece una sola vez en el desglose de precio.
diff --git a/work/artifacts/F-166/implementer.md b/work/artifacts/F-166/implementer.md
new file mode 100644
index 0000000..d459db6
--- /dev/null
+++ b/work/artifacts/F-166/implementer.md
@@ -0,0 +1,3 @@
+# F-166 — Implementer
+
+Eliminado porcentaje duplicado del label bruto. Queda `inc. IVA` y el porcentaje aparece una sola vez en `sin IVA · IVA N%`. Frontend build y tsc PASS.
diff --git a/work/artifacts/F-166/leader-close.json b/work/artifacts/F-166/leader-close.json
new file mode 100644
index 0000000..6a272d1
--- /dev/null
+++ b/work/artifacts/F-166/leader-close.json
@@ -0,0 +1 @@
+{"feature_id":"F-166","agent":"leader","stage":"close","verdict":"APPROVED","checks":[{"item":"all gates/build","ok":true}],"issues":[]}
diff --git a/work/artifacts/F-166/qa.json b/work/artifacts/F-166/qa.json
new file mode 100644
index 0000000..e02874f
--- /dev/null
+++ b/work/artifacts/F-166/qa.json
@@ -0,0 +1 @@
+{"feature_id":"F-166","agent":"qa","stage":"qa_gate","verdict":"APPROVED","checks":[{"item":"inc IVA without rate","ok":true},{"item":"rate retained once","ok":true},{"item":"frontend build","ok":true}],"issues":[]}
diff --git a/work/artifacts/F-166/reviewer.json b/work/artifacts/F-166/reviewer.json
new file mode 100644
index 0000000..5dcc9e7
--- /dev/null
+++ b/work/artifacts/F-166/reviewer.json
@@ -0,0 +1 @@
+{"feature_id":"F-166","agent":"reviewer","stage":"review_gate","verdict":"APPROVED","checks":[{"item":"VAT rate once","ok":true},{"item":"build","ok":true}],"issues":[]}
diff --git a/work/artifacts/F-166/security.json b/work/artifacts/F-166/security.json
new file mode 100644
index 0000000..b4ba2dc
--- /dev/null
+++ b/work/artifacts/F-166/security.json
@@ -0,0 +1 @@
+{"feature_id":"F-166","agent":"security","stage":"security_gate","verdict":"APPROVED","checks":[{"item":"display only","ok":true}],"issues":[]}
diff --git a/work/current.md b/work/current.md
index 97890db..c87b91a 100644
--- a/work/current.md
+++ b/work/current.md
@@ -1,3 +1,3 @@
-# F-162 — Add storefront product link to inventory
+# F-166 — Remove duplicate VAT rate in storefront price
-Añadir columna final **Tienda** en Inventario. Cada producto activo enlaza a `http://192.168.18.93:3003/products/{slug}` en nueva pestaña, reutilizando icono, estilos y seguridad `noopener noreferrer` del listado Productos.
+En ficha de producto mantener `PVP inc. IVA` y mostrar el porcentaje solo en el desglose neto: `€14.40 sin IVA · IVA 10%`.
diff --git a/work/runtime-status.json b/work/runtime-status.json
index 550df0a..ac347f4 100644
--- a/work/runtime-status.json
+++ b/work/runtime-status.json
@@ -1,68 +1,68 @@
{
- "feature_id": "F-162",
+ "feature_id": "F-166",
"stage": "close",
"agent": "leader",
- "action": "Close Inventory link fix",
+ "action": "Close VAT label fix",
"state": "running",
"next_agent": "leader",
"waiting_for": "Seleccionar una feature pending y actualizar este estado",
- "updated_at": "2026-08-22T16:18:19Z",
+ "updated_at": "2026-08-22T16:20:59Z",
"timeline": [
{
- "ts": "2026-08-22T16:16:06Z",
+ "ts": "2026-08-22T16:18:46Z",
"agent": "leader",
"stage": "intake",
"state": "running",
- "message": "Add storefront link column to Inventory"
+ "message": "Remove repeated VAT rate from storefront price"
},
{
- "ts": "2026-08-22T16:16:31Z",
+ "ts": "2026-08-22T16:19:03Z",
"agent": "architect",
"stage": "design",
"state": "running",
- "message": "Reuse Products storefront link pattern"
+ "message": "Keep VAT rate only in price breakdown"
},
{
- "ts": "2026-08-22T16:16:54Z",
+ "ts": "2026-08-22T16:19:18Z",
"agent": "implementer",
"stage": "build",
"state": "running",
- "message": "Add Tienda link column to Inventory"
+ "message": "Remove duplicate VAT percent label"
},
{
- "ts": "2026-08-22T16:17:31Z",
+ "ts": "2026-08-22T16:19:59Z",
"agent": "reviewer",
"stage": "review_gate",
"state": "running",
- "message": "Review Inventory storefront link"
+ "message": "Review VAT label"
},
{
- "ts": "2026-08-22T16:17:46Z",
+ "ts": "2026-08-22T16:20:11Z",
"agent": "security",
"stage": "security_gate",
"state": "running",
- "message": "Check external storefront link safety"
+ "message": "Check display-only change"
},
{
- "ts": "2026-08-22T16:17:57Z",
+ "ts": "2026-08-22T16:20:24Z",
"agent": "qa",
"stage": "qa_gate",
"state": "running",
- "message": "Validate Inventory Tienda column"
+ "message": "Validate one VAT rate label"
},
{
- "ts": "2026-08-22T16:18:09Z",
+ "ts": "2026-08-22T16:20:36Z",
"agent": "documenter",
"stage": "document",
"state": "running",
- "message": "Document Inventory storefront link"
+ "message": "Document VAT label"
},
{
- "ts": "2026-08-22T16:18:19Z",
+ "ts": "2026-08-22T16:20:59Z",
"agent": "leader",
"stage": "close",
"state": "running",
- "message": "Close Inventory link fix"
+ "message": "Close VAT label fix"
}
]
}