Files
HiveGrid-Wireframes/hivegrid-cloud/docs/feature-manifests/remove-candidates.json
T

161 lines
6.6 KiB
JSON

{
"schemaVersion": "1.0",
"id": "remove-candidates",
"title": "Removal Candidate Feature Groups",
"classification": "remove-candidate",
"status": "review-needed",
"owner": "core-pruning",
"description": "Feature groups that should be removed from the default boilerplate or aggressively reviewed for deletion.",
"rationale": [
"These surfaces conflict with the plan to remove marketing/default demo product behavior from the boilerplate.",
"Some entries are remnants or provider duplicates that should only survive as explicit adapters."
],
"codeAreas": [],
"dependencies": [
"core"
],
"consumers": [],
"components": [
{
"id": "forms-surveys-public-forms",
"title": "Forms, Surveys, and Public Forms",
"rationale": "Product Core excludes Forms, Surveys, Public Forms, and form-based Help Desk surveys. They are removal targets for runtime, active schema, navigation, seeds, docs, and gates rather than default CRM SaaS capabilities.",
"codeAreas": [
"apps/web/app/modules/formBuilder",
"apps/web/app/modules/surveys",
"apps/web/app/routes/__forms/*",
"apps/web/app/routes/admin/forms/*",
"apps/web/app/routes/app.$tenant/settings/forms/*",
"apps/web/app/routes/surveys/*",
"apps/web/app/routes/admin/help-desk/surveys/*",
"prisma/schema/formBuilder.prisma",
"Survey models in prisma/schema/helpDesk.prisma"
]
},
{
"id": "marketing-public-site-remnants",
"title": "Marketing and Public Site Remnants",
"rationale": "D009 canonical report: docs/feature-decisions/kb-widgets-workflow-marketing-decision-report.md. Action: remove-from-core. Marketing belongs in a separate project; only minimal legal/auth pages should remain in boilerplate.",
"codeAreas": []
},
{
"id": "blog-changelog-remnants",
"title": "Blog and Changelog Remnants",
"rationale": "D009 canonical report: docs/feature-decisions/kb-widgets-workflow-marketing-decision-report.md. Action: remove-from-core. Blog/changelog are marketing/content surfaces and not default boilerplate core.",
"codeAreas": []
},
{
"id": "playground-demo-debug",
"title": "Playground, Demo, Debug Surfaces",
"rationale": "Demo and debug surfaces are not production-ready default boilerplate features.",
"codeAreas": []
},
{
"id": "marketing-chatbot",
"title": "Marketing Chatbot",
"rationale": "D009 canonical report: docs/feature-decisions/kb-widgets-workflow-marketing-decision-report.md. Action: remove-from-core. Unauthenticated marketing chatbot conflicts with removing marketing from the default boilerplate.",
"codeAreas": []
},
{
"id": "source-product-copy-assets-fake-data",
"title": "Source Product Copy, Assets, Fake Data",
"rationale": "Whitelabel cleanup should remove source-product-specific copy, fake content, and logos.",
"codeAreas": []
},
{
"id": "heavy-visual-editor-dependency-review",
"title": "Heavy Visual and Editor Dependency Review",
"rationale": "Heavy editor and drag/drop dependencies should be reviewed after their owning feature surfaces are removed or extracted. Do not delete packages that are still imported by core/shared UI or plugin-candidate code.",
"codeAreas": [
"shared rich-text editor dependency set",
"shared drag/drop dependency set",
"syntax and math rendering dependency set"
]
}
],
"integration": {
"ownership": "system-only",
"surfaces": {
"adminRoutes": [
"routes marked for deletion or review"
],
"tenantRoutes": [
"tenant routes marked for deletion or review"
],
"publicRoutes": [
"public demo/marketing routes marked for deletion or review"
],
"apiRoutes": [
"API routes marked for deletion or review"
]
},
"configuration": {
"admin": [],
"tenant": [],
"environment": [
"Environment variables tied only to removed features should be removed after dependency audit."
],
"secrets": [
"Secrets tied only to removed features should be removed after dependency audit."
]
},
"workers": {
"required": false,
"queues": [],
"jobs": [],
"notes": [
"Delete or extract worker jobs only after consumers are audited."
]
},
"externalProviders": [
"provider dependencies under removal review"
],
"permissions": [],
"auditEvents": [
"removed_feature.audit_retained_if_needed"
],
"billingImpacts": [
"Removal must not delete billing dependencies used by core."
],
"uat": [
"Removing a candidate does not break core auth, tenant shell, admin shell, billing, mail, or rows runtime."
]
},
"boundaries": {
"mustKeep": [
"Any dependency still required by core manifests",
"Legal/auth public pages if retained by the app shell"
],
"mayMoveToPlugin": [
"Provider adapters for non-default mail vendors",
"Demo fixtures useful for test-only packages"
],
"mustNotTouch": [
"Historical affiliate migrations and unrelated chatbot, route, and navigation code during this cleanup phase",
"Runtime code until the owning worker or implementation phase takes over"
]
},
"pruning": {
"phase": "1",
"action": "remove",
"notes": [
"This manifest captures removal intent; T04 removed the orphan Affiliate icon while preserving historical migration evidence.",
"Feature Decision/S06 remove-from-core pruning removed the orphan BlogApi stub; public row sharing at apps/web/app/routes/public/$entity.$id.tsx is now removed from active runtime.",
"Feature Manifest/S05 adds pnpm run verify:removed-modules as the runtime scan gate for removed-module regressions.",
"Product Core marks Forms, Surveys, Public Forms, and form-based Help Desk surveys as removal targets rather than plugin candidates.",
"Fake content helpers and the demo admin entity row route were removed from the active source tree.",
"Dependency cleanup must run after feature extraction/removal and live import audits to avoid deleting shared packages prematurely.",
"Unused landing-particle runtime code and particle dependencies were removed from active source."
]
},
"validation": {
"source": [
"docs/feature-inventory.md",
"docs/architecture-migration-status.md",
"BOILERPLATE-PLAN.md",
"docs/feature-decisions/kb-widgets-workflow-marketing-decision-report.md"
],
"lastReviewed": "2026-05-13"
}
}