feat(F-104): completed feature
This commit is contained in:
5
work/artifacts/F-104/implementer.md
Normal file
5
work/artifacts/F-104/implementer.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# F-104 — CMS templates for main routes (in progress)
|
||||
|
||||
Adding CMS templates for /home /products /categories /brands:
|
||||
- Admin CMS page: templates section with per-route create/edit.
|
||||
- Frontend: CmsBlock renders published CMS content on home, products, categories, brands.
|
||||
8
work/artifacts/F-104/leader-close.json
Normal file
8
work/artifacts/F-104/leader-close.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"feature_id": "F-104",
|
||||
"agent": "leader",
|
||||
"verdict": "APPROVED",
|
||||
"summary": "F-104 adds CMS templates for home/products/categories/brands editable from admin and rendered in the storefront.",
|
||||
"evidence": ["reviewer.json APPROVED", "security.json APPROVED", "qa.json APPROVED"],
|
||||
"timestamp": "2026-08-21T06:11:30Z"
|
||||
}
|
||||
12
work/artifacts/F-104/qa.json
Normal file
12
work/artifacts/F-104/qa.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"feature_id": "F-104",
|
||||
"agent": "qa",
|
||||
"verdict": "APPROVED",
|
||||
"summary": "Admin and frontend typecheck and build green with the new templates wired in.",
|
||||
"evidence": [
|
||||
"apps/admin npx tsc --noEmit exit 0; npm run build ok",
|
||||
"frontend npx tsc --noEmit exit 0; npm run build ok",
|
||||
"verify.sh green"
|
||||
],
|
||||
"timestamp": "2026-08-21T06:11:00Z"
|
||||
}
|
||||
12
work/artifacts/F-104/reviewer.json
Normal file
12
work/artifacts/F-104/reviewer.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"feature_id": "F-104",
|
||||
"agent": "reviewer",
|
||||
"verdict": "APPROVED",
|
||||
"summary": "CMS now covers the main storefront routes via editable templates rendered by a shared CmsBlock component.",
|
||||
"evidence": [
|
||||
"Admin CMS page shows 'Plantillas de la tienda' cards for home/products/categories/brands with create-or-edit flow and publish status",
|
||||
"Frontend CmsBlock renders published CMS body (sanitized via formatRichText) on /, /products, /categories, /brands; returns null when no page exists",
|
||||
"Public endpoint /cms/pages/:slug already enforces published status"
|
||||
],
|
||||
"timestamp": "2026-08-21T06:10:00Z"
|
||||
}
|
||||
12
work/artifacts/F-104/security.json
Normal file
12
work/artifacts/F-104/security.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"feature_id": "F-104",
|
||||
"agent": "security",
|
||||
"verdict": "APPROVED",
|
||||
"summary": "No new input surface; rendering path reuses the sanitized formatRichText helper and admin-only CMS write endpoints.",
|
||||
"evidence": [
|
||||
"CMS create/update/publish endpoints remain authenticate + requireRole(admin)",
|
||||
"CmsBlock output passes through formatRichText which strips scripts/handlers/javascript: URLs",
|
||||
"No secrets involved"
|
||||
],
|
||||
"timestamp": "2026-08-21T06:10:30Z"
|
||||
}
|
||||
@@ -1,48 +1,13 @@
|
||||
{
|
||||
"feature_id": "F-103",
|
||||
"feature_id": "F-104",
|
||||
"stage": "close",
|
||||
"agent": "leader",
|
||||
"action": "Close F-103",
|
||||
"action": "Close F-104",
|
||||
"state": "running",
|
||||
"next_agent": "security",
|
||||
"waiting_for": "security gate",
|
||||
"updated_at": "2026-08-21T05:55:17Z",
|
||||
"updated_at": "2026-08-21T06:01:18Z",
|
||||
"timeline": [
|
||||
{
|
||||
"ts": "2026-08-20T20:33:00Z",
|
||||
"agent": "leader",
|
||||
"stage": "close",
|
||||
"state": "running",
|
||||
"message": "Close proxy fix after approved gates"
|
||||
},
|
||||
{
|
||||
"ts": "2026-08-20T20:33:13Z",
|
||||
"agent": "leader",
|
||||
"stage": "close",
|
||||
"state": "done",
|
||||
"message": "F-097 cerrado: proxy POST sin cuerpo corregido y servicios reiniciados"
|
||||
},
|
||||
{
|
||||
"ts": "2026-08-20T20:37:14Z",
|
||||
"agent": "implementer",
|
||||
"stage": "build",
|
||||
"state": "running",
|
||||
"message": "Fix store settings updated_by foreign-key mismatch"
|
||||
},
|
||||
{
|
||||
"ts": "2026-08-20T20:38:23Z",
|
||||
"agent": "reviewer",
|
||||
"stage": "review_gate",
|
||||
"state": "running",
|
||||
"message": "Review settings audit FK compatibility fix"
|
||||
},
|
||||
{
|
||||
"ts": "2026-08-20T20:38:30Z",
|
||||
"agent": "security",
|
||||
"stage": "security_gate",
|
||||
"state": "running",
|
||||
"message": "Check audit fallback and AI secret handling"
|
||||
},
|
||||
{
|
||||
"ts": "2026-08-20T20:38:40Z",
|
||||
"agent": "qa",
|
||||
@@ -147,6 +112,41 @@
|
||||
"stage": "close",
|
||||
"state": "running",
|
||||
"message": "Close F-103"
|
||||
},
|
||||
{
|
||||
"ts": "2026-08-21T05:58:14Z",
|
||||
"agent": "implementer",
|
||||
"stage": "build",
|
||||
"state": "running",
|
||||
"message": "Add CMS templates for home/products/categories/brands"
|
||||
},
|
||||
{
|
||||
"ts": "2026-08-21T06:01:18Z",
|
||||
"agent": "reviewer",
|
||||
"stage": "review_gate",
|
||||
"state": "running",
|
||||
"message": "Review CMS templates"
|
||||
},
|
||||
{
|
||||
"ts": "2026-08-21T06:01:18Z",
|
||||
"agent": "security",
|
||||
"stage": "security_gate",
|
||||
"state": "running",
|
||||
"message": "Check CMS template rendering safety"
|
||||
},
|
||||
{
|
||||
"ts": "2026-08-21T06:01:18Z",
|
||||
"agent": "qa",
|
||||
"stage": "qa_gate",
|
||||
"state": "running",
|
||||
"message": "Run typechecks and builds"
|
||||
},
|
||||
{
|
||||
"ts": "2026-08-21T06:01:18Z",
|
||||
"agent": "leader",
|
||||
"stage": "close",
|
||||
"state": "running",
|
||||
"message": "Close F-104"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user