solokit 0.1.1__py3-none-any.whl
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.
- solokit/__init__.py +10 -0
- solokit/__version__.py +3 -0
- solokit/cli.py +374 -0
- solokit/core/__init__.py +1 -0
- solokit/core/cache.py +102 -0
- solokit/core/command_runner.py +278 -0
- solokit/core/config.py +453 -0
- solokit/core/config_validator.py +204 -0
- solokit/core/constants.py +291 -0
- solokit/core/error_formatter.py +279 -0
- solokit/core/error_handlers.py +346 -0
- solokit/core/exceptions.py +1567 -0
- solokit/core/file_ops.py +309 -0
- solokit/core/logging_config.py +166 -0
- solokit/core/output.py +99 -0
- solokit/core/performance.py +57 -0
- solokit/core/protocols.py +141 -0
- solokit/core/types.py +312 -0
- solokit/deployment/__init__.py +1 -0
- solokit/deployment/executor.py +411 -0
- solokit/git/__init__.py +1 -0
- solokit/git/integration.py +619 -0
- solokit/init/__init__.py +41 -0
- solokit/init/claude_commands_installer.py +87 -0
- solokit/init/dependency_installer.py +313 -0
- solokit/init/docs_structure.py +90 -0
- solokit/init/env_generator.py +160 -0
- solokit/init/environment_validator.py +334 -0
- solokit/init/git_hooks_installer.py +71 -0
- solokit/init/git_setup.py +188 -0
- solokit/init/gitignore_updater.py +195 -0
- solokit/init/initial_commit.py +145 -0
- solokit/init/initial_scans.py +109 -0
- solokit/init/orchestrator.py +246 -0
- solokit/init/readme_generator.py +207 -0
- solokit/init/session_structure.py +239 -0
- solokit/init/template_installer.py +424 -0
- solokit/learning/__init__.py +1 -0
- solokit/learning/archiver.py +115 -0
- solokit/learning/categorizer.py +126 -0
- solokit/learning/curator.py +428 -0
- solokit/learning/extractor.py +352 -0
- solokit/learning/reporter.py +351 -0
- solokit/learning/repository.py +254 -0
- solokit/learning/similarity.py +342 -0
- solokit/learning/validator.py +144 -0
- solokit/project/__init__.py +1 -0
- solokit/project/init.py +1162 -0
- solokit/project/stack.py +436 -0
- solokit/project/sync_plugin.py +438 -0
- solokit/project/tree.py +375 -0
- solokit/quality/__init__.py +1 -0
- solokit/quality/api_validator.py +424 -0
- solokit/quality/checkers/__init__.py +25 -0
- solokit/quality/checkers/base.py +114 -0
- solokit/quality/checkers/context7.py +221 -0
- solokit/quality/checkers/custom.py +162 -0
- solokit/quality/checkers/deployment.py +323 -0
- solokit/quality/checkers/documentation.py +179 -0
- solokit/quality/checkers/formatting.py +161 -0
- solokit/quality/checkers/integration.py +394 -0
- solokit/quality/checkers/linting.py +159 -0
- solokit/quality/checkers/security.py +261 -0
- solokit/quality/checkers/spec_completeness.py +127 -0
- solokit/quality/checkers/tests.py +184 -0
- solokit/quality/env_validator.py +306 -0
- solokit/quality/gates.py +655 -0
- solokit/quality/reporters/__init__.py +10 -0
- solokit/quality/reporters/base.py +25 -0
- solokit/quality/reporters/console.py +98 -0
- solokit/quality/reporters/json_reporter.py +34 -0
- solokit/quality/results.py +98 -0
- solokit/session/__init__.py +1 -0
- solokit/session/briefing/__init__.py +245 -0
- solokit/session/briefing/documentation_loader.py +53 -0
- solokit/session/briefing/formatter.py +476 -0
- solokit/session/briefing/git_context.py +282 -0
- solokit/session/briefing/learning_loader.py +212 -0
- solokit/session/briefing/milestone_builder.py +78 -0
- solokit/session/briefing/orchestrator.py +137 -0
- solokit/session/briefing/stack_detector.py +51 -0
- solokit/session/briefing/tree_generator.py +52 -0
- solokit/session/briefing/work_item_loader.py +209 -0
- solokit/session/briefing.py +353 -0
- solokit/session/complete.py +1188 -0
- solokit/session/status.py +246 -0
- solokit/session/validate.py +452 -0
- solokit/templates/.claude/commands/end.md +109 -0
- solokit/templates/.claude/commands/init.md +159 -0
- solokit/templates/.claude/commands/learn-curate.md +88 -0
- solokit/templates/.claude/commands/learn-search.md +62 -0
- solokit/templates/.claude/commands/learn-show.md +69 -0
- solokit/templates/.claude/commands/learn.md +136 -0
- solokit/templates/.claude/commands/start.md +114 -0
- solokit/templates/.claude/commands/status.md +22 -0
- solokit/templates/.claude/commands/validate.md +27 -0
- solokit/templates/.claude/commands/work-delete.md +119 -0
- solokit/templates/.claude/commands/work-graph.md +139 -0
- solokit/templates/.claude/commands/work-list.md +26 -0
- solokit/templates/.claude/commands/work-new.md +114 -0
- solokit/templates/.claude/commands/work-next.md +25 -0
- solokit/templates/.claude/commands/work-show.md +24 -0
- solokit/templates/.claude/commands/work-update.md +141 -0
- solokit/templates/CHANGELOG.md +17 -0
- solokit/templates/WORK_ITEM_TYPES.md +141 -0
- solokit/templates/__init__.py +1 -0
- solokit/templates/bug_spec.md +217 -0
- solokit/templates/config.schema.json +150 -0
- solokit/templates/dashboard_refine/base/.gitignore +36 -0
- solokit/templates/dashboard_refine/base/app/(dashboard)/layout.tsx +22 -0
- solokit/templates/dashboard_refine/base/app/(dashboard)/page.tsx +68 -0
- solokit/templates/dashboard_refine/base/app/(dashboard)/users/page.tsx +77 -0
- solokit/templates/dashboard_refine/base/app/globals.css +60 -0
- solokit/templates/dashboard_refine/base/app/layout.tsx +23 -0
- solokit/templates/dashboard_refine/base/app/page.tsx +9 -0
- solokit/templates/dashboard_refine/base/components/client-refine-wrapper.tsx +21 -0
- solokit/templates/dashboard_refine/base/components/layout/header.tsx +44 -0
- solokit/templates/dashboard_refine/base/components/layout/sidebar.tsx +82 -0
- solokit/templates/dashboard_refine/base/components/ui/button.tsx +53 -0
- solokit/templates/dashboard_refine/base/components/ui/card.tsx +78 -0
- solokit/templates/dashboard_refine/base/components/ui/table.tsx +116 -0
- solokit/templates/dashboard_refine/base/components.json +16 -0
- solokit/templates/dashboard_refine/base/lib/refine.tsx +65 -0
- solokit/templates/dashboard_refine/base/lib/utils.ts +13 -0
- solokit/templates/dashboard_refine/base/next.config.ts +10 -0
- solokit/templates/dashboard_refine/base/package.json.template +40 -0
- solokit/templates/dashboard_refine/base/postcss.config.mjs +8 -0
- solokit/templates/dashboard_refine/base/providers/refine-provider.tsx +26 -0
- solokit/templates/dashboard_refine/base/tailwind.config.ts +57 -0
- solokit/templates/dashboard_refine/base/tsconfig.json +27 -0
- solokit/templates/dashboard_refine/docker/Dockerfile +57 -0
- solokit/templates/dashboard_refine/docker/docker-compose.prod.yml +31 -0
- solokit/templates/dashboard_refine/docker/docker-compose.yml +21 -0
- solokit/templates/dashboard_refine/tier-1-essential/.eslintrc.json +7 -0
- solokit/templates/dashboard_refine/tier-1-essential/jest.config.ts +17 -0
- solokit/templates/dashboard_refine/tier-1-essential/jest.setup.ts +1 -0
- solokit/templates/dashboard_refine/tier-1-essential/package.json.tier1.template +57 -0
- solokit/templates/dashboard_refine/tier-1-essential/tests/setup.ts +26 -0
- solokit/templates/dashboard_refine/tier-1-essential/tests/unit/example.test.tsx +73 -0
- solokit/templates/dashboard_refine/tier-2-standard/package.json.tier2.template +62 -0
- solokit/templates/dashboard_refine/tier-3-comprehensive/eslint.config.mjs +22 -0
- solokit/templates/dashboard_refine/tier-3-comprehensive/package.json.tier3.template +79 -0
- solokit/templates/dashboard_refine/tier-3-comprehensive/playwright.config.ts +66 -0
- solokit/templates/dashboard_refine/tier-3-comprehensive/stryker.conf.json +38 -0
- solokit/templates/dashboard_refine/tier-3-comprehensive/tests/e2e/dashboard.spec.ts +88 -0
- solokit/templates/dashboard_refine/tier-3-comprehensive/tests/e2e/user-management.spec.ts +102 -0
- solokit/templates/dashboard_refine/tier-3-comprehensive/tests/integration/dashboard.test.tsx +90 -0
- solokit/templates/dashboard_refine/tier-3-comprehensive/type-coverage.json +16 -0
- solokit/templates/dashboard_refine/tier-4-production/instrumentation.ts +9 -0
- solokit/templates/dashboard_refine/tier-4-production/k6/dashboard-load-test.js +70 -0
- solokit/templates/dashboard_refine/tier-4-production/next.config.ts +46 -0
- solokit/templates/dashboard_refine/tier-4-production/package.json.tier4.template +89 -0
- solokit/templates/dashboard_refine/tier-4-production/sentry.client.config.ts +26 -0
- solokit/templates/dashboard_refine/tier-4-production/sentry.edge.config.ts +11 -0
- solokit/templates/dashboard_refine/tier-4-production/sentry.server.config.ts +11 -0
- solokit/templates/deployment_spec.md +500 -0
- solokit/templates/feature_spec.md +248 -0
- solokit/templates/fullstack_nextjs/base/.gitignore +36 -0
- solokit/templates/fullstack_nextjs/base/app/api/example/route.ts +65 -0
- solokit/templates/fullstack_nextjs/base/app/globals.css +27 -0
- solokit/templates/fullstack_nextjs/base/app/layout.tsx +20 -0
- solokit/templates/fullstack_nextjs/base/app/page.tsx +32 -0
- solokit/templates/fullstack_nextjs/base/components/example-component.tsx +20 -0
- solokit/templates/fullstack_nextjs/base/lib/prisma.ts +17 -0
- solokit/templates/fullstack_nextjs/base/lib/utils.ts +13 -0
- solokit/templates/fullstack_nextjs/base/lib/validations.ts +20 -0
- solokit/templates/fullstack_nextjs/base/next.config.ts +7 -0
- solokit/templates/fullstack_nextjs/base/package.json.template +32 -0
- solokit/templates/fullstack_nextjs/base/postcss.config.mjs +8 -0
- solokit/templates/fullstack_nextjs/base/prisma/schema.prisma +21 -0
- solokit/templates/fullstack_nextjs/base/tailwind.config.ts +19 -0
- solokit/templates/fullstack_nextjs/base/tsconfig.json +27 -0
- solokit/templates/fullstack_nextjs/docker/Dockerfile +60 -0
- solokit/templates/fullstack_nextjs/docker/docker-compose.prod.yml +57 -0
- solokit/templates/fullstack_nextjs/docker/docker-compose.yml +47 -0
- solokit/templates/fullstack_nextjs/tier-1-essential/.eslintrc.json +7 -0
- solokit/templates/fullstack_nextjs/tier-1-essential/jest.config.ts +17 -0
- solokit/templates/fullstack_nextjs/tier-1-essential/jest.setup.ts +1 -0
- solokit/templates/fullstack_nextjs/tier-1-essential/package.json.tier1.template +48 -0
- solokit/templates/fullstack_nextjs/tier-1-essential/tests/api/example.test.ts +88 -0
- solokit/templates/fullstack_nextjs/tier-1-essential/tests/setup.ts +22 -0
- solokit/templates/fullstack_nextjs/tier-1-essential/tests/unit/example.test.tsx +22 -0
- solokit/templates/fullstack_nextjs/tier-2-standard/package.json.tier2.template +52 -0
- solokit/templates/fullstack_nextjs/tier-3-comprehensive/eslint.config.mjs +39 -0
- solokit/templates/fullstack_nextjs/tier-3-comprehensive/package.json.tier3.template +68 -0
- solokit/templates/fullstack_nextjs/tier-3-comprehensive/playwright.config.ts +66 -0
- solokit/templates/fullstack_nextjs/tier-3-comprehensive/stryker.conf.json +33 -0
- solokit/templates/fullstack_nextjs/tier-3-comprehensive/tests/e2e/flow.spec.ts +59 -0
- solokit/templates/fullstack_nextjs/tier-3-comprehensive/tests/integration/api.test.ts +165 -0
- solokit/templates/fullstack_nextjs/tier-3-comprehensive/type-coverage.json +12 -0
- solokit/templates/fullstack_nextjs/tier-4-production/instrumentation.ts +9 -0
- solokit/templates/fullstack_nextjs/tier-4-production/k6/load-test.js +45 -0
- solokit/templates/fullstack_nextjs/tier-4-production/next.config.ts +46 -0
- solokit/templates/fullstack_nextjs/tier-4-production/package.json.tier4.template +77 -0
- solokit/templates/fullstack_nextjs/tier-4-production/sentry.client.config.ts +26 -0
- solokit/templates/fullstack_nextjs/tier-4-production/sentry.edge.config.ts +11 -0
- solokit/templates/fullstack_nextjs/tier-4-production/sentry.server.config.ts +11 -0
- solokit/templates/git-hooks/prepare-commit-msg +24 -0
- solokit/templates/integration_test_spec.md +363 -0
- solokit/templates/learnings.json +15 -0
- solokit/templates/ml_ai_fastapi/base/.gitignore +104 -0
- solokit/templates/ml_ai_fastapi/base/alembic/env.py +96 -0
- solokit/templates/ml_ai_fastapi/base/alembic.ini +114 -0
- solokit/templates/ml_ai_fastapi/base/pyproject.toml.template +91 -0
- solokit/templates/ml_ai_fastapi/base/requirements.txt.template +28 -0
- solokit/templates/ml_ai_fastapi/base/src/__init__.py +5 -0
- solokit/templates/ml_ai_fastapi/base/src/api/__init__.py +3 -0
- solokit/templates/ml_ai_fastapi/base/src/api/dependencies.py +20 -0
- solokit/templates/ml_ai_fastapi/base/src/api/routes/__init__.py +3 -0
- solokit/templates/ml_ai_fastapi/base/src/api/routes/example.py +134 -0
- solokit/templates/ml_ai_fastapi/base/src/api/routes/health.py +66 -0
- solokit/templates/ml_ai_fastapi/base/src/core/__init__.py +3 -0
- solokit/templates/ml_ai_fastapi/base/src/core/config.py +64 -0
- solokit/templates/ml_ai_fastapi/base/src/core/database.py +50 -0
- solokit/templates/ml_ai_fastapi/base/src/main.py +64 -0
- solokit/templates/ml_ai_fastapi/base/src/models/__init__.py +7 -0
- solokit/templates/ml_ai_fastapi/base/src/models/example.py +61 -0
- solokit/templates/ml_ai_fastapi/base/src/services/__init__.py +3 -0
- solokit/templates/ml_ai_fastapi/base/src/services/example.py +115 -0
- solokit/templates/ml_ai_fastapi/docker/Dockerfile +59 -0
- solokit/templates/ml_ai_fastapi/docker/docker-compose.prod.yml +112 -0
- solokit/templates/ml_ai_fastapi/docker/docker-compose.yml +77 -0
- solokit/templates/ml_ai_fastapi/tier-1-essential/pyproject.toml.tier1.template +112 -0
- solokit/templates/ml_ai_fastapi/tier-1-essential/pyrightconfig.json +41 -0
- solokit/templates/ml_ai_fastapi/tier-1-essential/pytest.ini +69 -0
- solokit/templates/ml_ai_fastapi/tier-1-essential/requirements-dev.txt +17 -0
- solokit/templates/ml_ai_fastapi/tier-1-essential/ruff.toml +81 -0
- solokit/templates/ml_ai_fastapi/tier-1-essential/tests/__init__.py +3 -0
- solokit/templates/ml_ai_fastapi/tier-1-essential/tests/conftest.py +72 -0
- solokit/templates/ml_ai_fastapi/tier-1-essential/tests/test_main.py +49 -0
- solokit/templates/ml_ai_fastapi/tier-1-essential/tests/unit/__init__.py +3 -0
- solokit/templates/ml_ai_fastapi/tier-1-essential/tests/unit/test_example.py +113 -0
- solokit/templates/ml_ai_fastapi/tier-2-standard/pyproject.toml.tier2.template +130 -0
- solokit/templates/ml_ai_fastapi/tier-3-comprehensive/locustfile.py +99 -0
- solokit/templates/ml_ai_fastapi/tier-3-comprehensive/mutmut_config.py +53 -0
- solokit/templates/ml_ai_fastapi/tier-3-comprehensive/pyproject.toml.tier3.template +150 -0
- solokit/templates/ml_ai_fastapi/tier-3-comprehensive/tests/integration/__init__.py +3 -0
- solokit/templates/ml_ai_fastapi/tier-3-comprehensive/tests/integration/conftest.py +74 -0
- solokit/templates/ml_ai_fastapi/tier-3-comprehensive/tests/integration/test_api.py +131 -0
- solokit/templates/ml_ai_fastapi/tier-4-production/pyproject.toml.tier4.template +162 -0
- solokit/templates/ml_ai_fastapi/tier-4-production/requirements-prod.txt +25 -0
- solokit/templates/ml_ai_fastapi/tier-4-production/src/api/routes/metrics.py +19 -0
- solokit/templates/ml_ai_fastapi/tier-4-production/src/core/logging.py +74 -0
- solokit/templates/ml_ai_fastapi/tier-4-production/src/core/monitoring.py +68 -0
- solokit/templates/ml_ai_fastapi/tier-4-production/src/core/sentry.py +66 -0
- solokit/templates/ml_ai_fastapi/tier-4-production/src/middleware/__init__.py +3 -0
- solokit/templates/ml_ai_fastapi/tier-4-production/src/middleware/logging.py +79 -0
- solokit/templates/ml_ai_fastapi/tier-4-production/src/middleware/tracing.py +60 -0
- solokit/templates/refactor_spec.md +287 -0
- solokit/templates/saas_t3/base/.gitignore +36 -0
- solokit/templates/saas_t3/base/app/api/trpc/[trpc]/route.ts +33 -0
- solokit/templates/saas_t3/base/app/globals.css +27 -0
- solokit/templates/saas_t3/base/app/layout.tsx +23 -0
- solokit/templates/saas_t3/base/app/page.tsx +31 -0
- solokit/templates/saas_t3/base/lib/api.tsx +77 -0
- solokit/templates/saas_t3/base/lib/utils.ts +13 -0
- solokit/templates/saas_t3/base/next.config.ts +7 -0
- solokit/templates/saas_t3/base/package.json.template +38 -0
- solokit/templates/saas_t3/base/postcss.config.mjs +8 -0
- solokit/templates/saas_t3/base/prisma/schema.prisma +20 -0
- solokit/templates/saas_t3/base/server/api/root.ts +19 -0
- solokit/templates/saas_t3/base/server/api/routers/example.ts +28 -0
- solokit/templates/saas_t3/base/server/api/trpc.ts +52 -0
- solokit/templates/saas_t3/base/server/db.ts +17 -0
- solokit/templates/saas_t3/base/tailwind.config.ts +19 -0
- solokit/templates/saas_t3/base/tsconfig.json +27 -0
- solokit/templates/saas_t3/docker/Dockerfile +60 -0
- solokit/templates/saas_t3/docker/docker-compose.prod.yml +59 -0
- solokit/templates/saas_t3/docker/docker-compose.yml +49 -0
- solokit/templates/saas_t3/tier-1-essential/.eslintrc.json +7 -0
- solokit/templates/saas_t3/tier-1-essential/jest.config.ts +17 -0
- solokit/templates/saas_t3/tier-1-essential/jest.setup.ts +1 -0
- solokit/templates/saas_t3/tier-1-essential/package.json.tier1.template +54 -0
- solokit/templates/saas_t3/tier-1-essential/tests/setup.ts +22 -0
- solokit/templates/saas_t3/tier-1-essential/tests/unit/example.test.tsx +24 -0
- solokit/templates/saas_t3/tier-2-standard/package.json.tier2.template +58 -0
- solokit/templates/saas_t3/tier-3-comprehensive/eslint.config.mjs +39 -0
- solokit/templates/saas_t3/tier-3-comprehensive/package.json.tier3.template +74 -0
- solokit/templates/saas_t3/tier-3-comprehensive/playwright.config.ts +66 -0
- solokit/templates/saas_t3/tier-3-comprehensive/stryker.conf.json +34 -0
- solokit/templates/saas_t3/tier-3-comprehensive/tests/e2e/home.spec.ts +41 -0
- solokit/templates/saas_t3/tier-3-comprehensive/tests/integration/api.test.ts +44 -0
- solokit/templates/saas_t3/tier-3-comprehensive/type-coverage.json +12 -0
- solokit/templates/saas_t3/tier-4-production/instrumentation.ts +9 -0
- solokit/templates/saas_t3/tier-4-production/k6/load-test.js +51 -0
- solokit/templates/saas_t3/tier-4-production/next.config.ts +46 -0
- solokit/templates/saas_t3/tier-4-production/package.json.tier4.template +83 -0
- solokit/templates/saas_t3/tier-4-production/sentry.client.config.ts +26 -0
- solokit/templates/saas_t3/tier-4-production/sentry.edge.config.ts +11 -0
- solokit/templates/saas_t3/tier-4-production/sentry.server.config.ts +11 -0
- solokit/templates/saas_t3/tier-4-production/vercel.json +37 -0
- solokit/templates/security_spec.md +287 -0
- solokit/templates/stack-versions.yaml +617 -0
- solokit/templates/status_update.json +6 -0
- solokit/templates/template-registry.json +257 -0
- solokit/templates/work_items.json +11 -0
- solokit/testing/__init__.py +1 -0
- solokit/testing/integration_runner.py +550 -0
- solokit/testing/performance.py +637 -0
- solokit/visualization/__init__.py +1 -0
- solokit/visualization/dependency_graph.py +788 -0
- solokit/work_items/__init__.py +1 -0
- solokit/work_items/creator.py +217 -0
- solokit/work_items/delete.py +264 -0
- solokit/work_items/get_dependencies.py +185 -0
- solokit/work_items/get_dependents.py +113 -0
- solokit/work_items/get_metadata.py +121 -0
- solokit/work_items/get_next_recommendations.py +133 -0
- solokit/work_items/manager.py +235 -0
- solokit/work_items/milestones.py +137 -0
- solokit/work_items/query.py +376 -0
- solokit/work_items/repository.py +267 -0
- solokit/work_items/scheduler.py +184 -0
- solokit/work_items/spec_parser.py +838 -0
- solokit/work_items/spec_validator.py +493 -0
- solokit/work_items/updater.py +157 -0
- solokit/work_items/validator.py +205 -0
- solokit-0.1.1.dist-info/METADATA +640 -0
- solokit-0.1.1.dist-info/RECORD +323 -0
- solokit-0.1.1.dist-info/WHEEL +5 -0
- solokit-0.1.1.dist-info/entry_points.txt +2 -0
- solokit-0.1.1.dist-info/licenses/LICENSE +21 -0
- solokit-0.1.1.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,617 @@
|
|
|
1
|
+
# Solokit Template Stack Versions
|
|
2
|
+
# This file contains exact validated versions for all template stacks
|
|
3
|
+
# Last updated: 2025-11-07
|
|
4
|
+
# Last validated: 2025-11-07
|
|
5
|
+
# Source: Fresh build testing of all 4 stacks with Tier 1-4 tooling
|
|
6
|
+
|
|
7
|
+
metadata:
|
|
8
|
+
validation_date: "2025-11-07"
|
|
9
|
+
python_min_version: "3.11"
|
|
10
|
+
node_min_version: "18.0.0"
|
|
11
|
+
npm_min_version: "9.0.0"
|
|
12
|
+
success_rate: "100%" # All 4 stacks built successfully
|
|
13
|
+
total_validation_time: "90 minutes"
|
|
14
|
+
|
|
15
|
+
# =============================================================================
|
|
16
|
+
# Stack 1: SaaS T3 Stack (Next.js + tRPC + Prisma)
|
|
17
|
+
# =============================================================================
|
|
18
|
+
stacks:
|
|
19
|
+
saas_t3:
|
|
20
|
+
name: "Next.js T3 Stack"
|
|
21
|
+
description: "Full-stack TypeScript with Next.js, Prisma, tRPC"
|
|
22
|
+
package_manager: "npm"
|
|
23
|
+
total_packages: 1369
|
|
24
|
+
build_time_seconds: 1.2
|
|
25
|
+
install_time_minutes: 25
|
|
26
|
+
|
|
27
|
+
base_framework:
|
|
28
|
+
next: "16.0.1"
|
|
29
|
+
react: "19.2.0"
|
|
30
|
+
react-dom: "19.2.0"
|
|
31
|
+
typescript: "5.9.3"
|
|
32
|
+
"@types/node": "20.19.24"
|
|
33
|
+
"@types/react": "19.2.2"
|
|
34
|
+
"@types/react-dom": "19.2.2"
|
|
35
|
+
|
|
36
|
+
styling:
|
|
37
|
+
tailwindcss: "4.1.17"
|
|
38
|
+
"@tailwindcss/postcss": "4.1.17"
|
|
39
|
+
|
|
40
|
+
t3_core:
|
|
41
|
+
"@trpc/server": "11.7.1"
|
|
42
|
+
"@trpc/client": "11.7.1"
|
|
43
|
+
"@trpc/react-query": "11.7.1"
|
|
44
|
+
"@trpc/next": "11.7.1"
|
|
45
|
+
"@tanstack/react-query": "5.90.7"
|
|
46
|
+
prisma: "6.19.0"
|
|
47
|
+
"@prisma/client": "6.19.0"
|
|
48
|
+
zod: "4.1.12"
|
|
49
|
+
|
|
50
|
+
tier1_essential:
|
|
51
|
+
eslint: "9.39.1"
|
|
52
|
+
eslint-config-next: "16.0.1"
|
|
53
|
+
"@typescript-eslint/parser": "8.46.3"
|
|
54
|
+
"@typescript-eslint/eslint-plugin": "8.46.3"
|
|
55
|
+
prettier: "3.6.2"
|
|
56
|
+
jest: "30.2.0"
|
|
57
|
+
"@types/jest": "30.0.0"
|
|
58
|
+
ts-jest: "29.4.5"
|
|
59
|
+
jest-environment-jsdom: "30.2.0"
|
|
60
|
+
"@testing-library/react": "16.3.0"
|
|
61
|
+
"@testing-library/jest-dom": "6.9.1"
|
|
62
|
+
|
|
63
|
+
tier2_standard:
|
|
64
|
+
husky: "9.1.7"
|
|
65
|
+
lint-staged: "16.2.6"
|
|
66
|
+
|
|
67
|
+
tier3_comprehensive:
|
|
68
|
+
jscpd: "4.0.5"
|
|
69
|
+
ts-prune: "0.10.3"
|
|
70
|
+
type-coverage: "2.29.7"
|
|
71
|
+
"@stryker-mutator/core": "9.3.0"
|
|
72
|
+
"@stryker-mutator/jest-runner": "9.3.0"
|
|
73
|
+
playwright: "1.56.1"
|
|
74
|
+
"@axe-core/playwright": "4.11.0"
|
|
75
|
+
eslint-plugin-jest-dom: "5.5.0"
|
|
76
|
+
eslint-plugin-testing-library: "7.13.3"
|
|
77
|
+
|
|
78
|
+
tier4_production:
|
|
79
|
+
# IMPORTANT: patch-package must be installed FIRST
|
|
80
|
+
patch-package: "8.0.1"
|
|
81
|
+
"@next/bundle-analyzer": "16.0.1"
|
|
82
|
+
"@lhci/cli": "0.15.1"
|
|
83
|
+
dotenv-cli: "11.0.0"
|
|
84
|
+
"@sentry/nextjs": "10.23.0"
|
|
85
|
+
"@vercel/analytics": "1.5.0"
|
|
86
|
+
|
|
87
|
+
installation:
|
|
88
|
+
pre_install:
|
|
89
|
+
- "# Use 'yes n' to auto-answer create-next-app prompts (No to React Compiler and Turbopack)"
|
|
90
|
+
- "(yes \"n\" | npx create-next-app@latest <project-name> --typescript --tailwind --eslint --app --no-src-dir --import-alias \"@/*\")"
|
|
91
|
+
|
|
92
|
+
commands:
|
|
93
|
+
base: "npm install next@16.0.1 react@19.2.0 react-dom@19.2.0 @trpc/server@11.7.1 @trpc/client@11.7.1 @trpc/react-query@11.7.1 @trpc/next@11.7.1 @tanstack/react-query@5.90.7 prisma@6.19.0 @prisma/client@6.19.0 zod@4.1.12 tailwindcss@4.1.17 @tailwindcss/postcss@4.1.17"
|
|
94
|
+
|
|
95
|
+
tier1: "npm install --save-dev eslint@9.39.1 eslint-config-next@16.0.1 @typescript-eslint/parser@8.46.3 @typescript-eslint/eslint-plugin@8.46.3 prettier@3.6.2 jest@30.2.0 @types/jest@30.0.0 ts-jest@29.4.5 jest-environment-jsdom@30.2.0 @testing-library/react@16.3.0 @testing-library/jest-dom@6.9.1"
|
|
96
|
+
|
|
97
|
+
tier2: "npm install --save-dev husky@9.1.7 lint-staged@16.2.6"
|
|
98
|
+
|
|
99
|
+
tier3: "npm install --save-dev jscpd@4.0.5 ts-prune@0.10.3 type-coverage@2.29.7 @stryker-mutator/core@9.3.0 @stryker-mutator/jest-runner@9.3.0 @playwright/test@1.56.1 playwright@1.56.1 @axe-core/playwright@4.11.0 eslint-plugin-jest-dom@5.5.0 eslint-plugin-testing-library@7.13.3"
|
|
100
|
+
|
|
101
|
+
# CRITICAL: patch-package MUST be installed before Sentry
|
|
102
|
+
tier4_dev: "npm install --save-dev patch-package@8.0.1 @next/bundle-analyzer@16.0.1 @lhci/cli@0.15.1 dotenv-cli@11.0.0"
|
|
103
|
+
tier4_prod: "npm install @sentry/nextjs@10.23.0 @vercel/analytics@1.5.0"
|
|
104
|
+
|
|
105
|
+
test_command: "npm run build"
|
|
106
|
+
dev_command: "npm run dev"
|
|
107
|
+
|
|
108
|
+
known_issues:
|
|
109
|
+
- package: "@lhci/cli"
|
|
110
|
+
severity: "LOW"
|
|
111
|
+
type: "security_vulnerability"
|
|
112
|
+
count: 4
|
|
113
|
+
description: "4 LOW severity vulnerabilities in dev dependencies (tmp, inquirer)"
|
|
114
|
+
impact: "Dev-only tool, no production impact"
|
|
115
|
+
resolution: "Accepted and documented - cannot fix without breaking @lhci/cli functionality"
|
|
116
|
+
production_risk: "NONE"
|
|
117
|
+
|
|
118
|
+
- package: "@sentry/nextjs"
|
|
119
|
+
severity: "LOW"
|
|
120
|
+
type: "installation_dependency"
|
|
121
|
+
description: "Requires patch-package to be installed first"
|
|
122
|
+
impact: "Installation fails if patch-package not present"
|
|
123
|
+
resolution: "Include patch-package in Tier 4 dev dependencies, install before Sentry"
|
|
124
|
+
fix: "automatic"
|
|
125
|
+
|
|
126
|
+
# =============================================================================
|
|
127
|
+
# Stack 2: ML/AI FastAPI Stack (Python + FastAPI + SQLModel)
|
|
128
|
+
# =============================================================================
|
|
129
|
+
ml_ai_fastapi:
|
|
130
|
+
name: "FastAPI ML/AI Stack"
|
|
131
|
+
description: "Python ML/AI backend with FastAPI, SQLModel, and comprehensive testing"
|
|
132
|
+
package_manager: "pip"
|
|
133
|
+
total_packages: 160
|
|
134
|
+
install_time_minutes: 35
|
|
135
|
+
python_version_required: "3.11+"
|
|
136
|
+
|
|
137
|
+
base_framework:
|
|
138
|
+
python: "3.11.7" # Minimum 3.11.0
|
|
139
|
+
fastapi: "0.115.6"
|
|
140
|
+
uvicorn: "0.34.0" # with [standard] extras
|
|
141
|
+
pydantic: "2.12.4"
|
|
142
|
+
pydantic-core: "2.41.5"
|
|
143
|
+
|
|
144
|
+
database_orm:
|
|
145
|
+
sqlmodel: "0.0.25"
|
|
146
|
+
sqlalchemy: "2.0.37"
|
|
147
|
+
psycopg2-binary: "2.9.10"
|
|
148
|
+
asyncpg: "0.30.0"
|
|
149
|
+
alembic: "1.14.0"
|
|
150
|
+
|
|
151
|
+
tier1_essential:
|
|
152
|
+
pytest: "8.3.4"
|
|
153
|
+
pytest-cov: "6.0.0"
|
|
154
|
+
pytest-asyncio: "0.25.2"
|
|
155
|
+
httpx: "0.28.1"
|
|
156
|
+
ruff: "0.9.2"
|
|
157
|
+
pyright: "1.1.396"
|
|
158
|
+
aiosqlite: "0.20.0"
|
|
159
|
+
|
|
160
|
+
tier2_standard:
|
|
161
|
+
detect-secrets: "1.5.0"
|
|
162
|
+
pip-audit: "2.7.3"
|
|
163
|
+
bandit: "1.8.0" # with [toml] extra
|
|
164
|
+
pre-commit: "4.0.1"
|
|
165
|
+
|
|
166
|
+
tier3_comprehensive:
|
|
167
|
+
radon: "6.0.1"
|
|
168
|
+
vulture: "2.14"
|
|
169
|
+
mutmut: "3.3.1"
|
|
170
|
+
locust: "2.42.2" # Requires Python >=3.10
|
|
171
|
+
semgrep: "1.142.1"
|
|
172
|
+
coverage: "7.11.1" # with [toml] extra
|
|
173
|
+
|
|
174
|
+
tier4_production:
|
|
175
|
+
prometheus-client: "0.23.1"
|
|
176
|
+
statsd: "4.0.1"
|
|
177
|
+
structlog: "25.5.0"
|
|
178
|
+
python-json-logger: "4.0.0"
|
|
179
|
+
fastapi-health: "0.4.0"
|
|
180
|
+
pydantic-settings: "2.11.0"
|
|
181
|
+
python-dotenv: "1.2.1"
|
|
182
|
+
# OpenTelemetry packages (optional due to version conflicts)
|
|
183
|
+
opentelemetry-api: "1.38.0"
|
|
184
|
+
opentelemetry-instrumentation: "0.59b0"
|
|
185
|
+
opentelemetry-instrumentation-fastapi: "0.59b0"
|
|
186
|
+
|
|
187
|
+
installation:
|
|
188
|
+
pre_install:
|
|
189
|
+
- "# CRITICAL: Check Python version first"
|
|
190
|
+
- "python3 --version # Must be 3.11+ for Tier 3+ packages"
|
|
191
|
+
- "# If < 3.11, locate Python 3.11:"
|
|
192
|
+
- "which python3.11"
|
|
193
|
+
- "# Create virtual environment with Python 3.11+"
|
|
194
|
+
- "python3.11 -m venv venv"
|
|
195
|
+
- "source venv/bin/activate"
|
|
196
|
+
- "pip install --upgrade pip"
|
|
197
|
+
|
|
198
|
+
commands:
|
|
199
|
+
# Incremental installation matching tier structure
|
|
200
|
+
base: "pip install fastapi==0.115.6 'uvicorn[standard]==0.34.0' pydantic==2.12.4 sqlmodel==0.0.25 sqlalchemy==2.0.37 psycopg2-binary==2.9.10 asyncpg==0.30.0 alembic==1.14.0"
|
|
201
|
+
|
|
202
|
+
tier1: "pip install pytest==8.3.4 pytest-cov==6.0.0 pytest-asyncio==0.25.2 httpx==0.28.1 ruff==0.9.2 pyright==1.1.396 aiosqlite==0.20.0"
|
|
203
|
+
|
|
204
|
+
tier2: "pip install detect-secrets==1.5.0 pip-audit==2.7.3 'bandit[toml]==1.8.0' pre-commit==4.0.1"
|
|
205
|
+
|
|
206
|
+
tier3: "pip install radon==6.0.1 vulture==2.14 mutmut==3.3.1 locust==2.42.2 semgrep==1.142.1 'coverage[toml]==7.11.1'"
|
|
207
|
+
|
|
208
|
+
tier4_dev: "pip install prometheus-client==0.23.1 statsd==4.0.1 structlog==25.5.0 python-json-logger==4.0.0"
|
|
209
|
+
|
|
210
|
+
tier4_prod: "pip install fastapi-health==0.4.0 pydantic-settings==2.11.0 python-dotenv==1.2.1 opentelemetry-api==1.38.0 opentelemetry-instrumentation==0.59b0 opentelemetry-instrumentation-fastapi==0.59b0"
|
|
211
|
+
|
|
212
|
+
security_fixes: "pip install --upgrade setuptools starlette"
|
|
213
|
+
|
|
214
|
+
test_command: "pytest"
|
|
215
|
+
audit_command: "pip-audit"
|
|
216
|
+
dev_command: "uvicorn main:app --reload"
|
|
217
|
+
|
|
218
|
+
known_issues:
|
|
219
|
+
- package: "locust"
|
|
220
|
+
severity: "CRITICAL"
|
|
221
|
+
type: "python_version_requirement"
|
|
222
|
+
description: "Requires Python >=3.10, but many systems still use Python 3.9"
|
|
223
|
+
impact: "Installation fails with 'No matching distribution found for locust'"
|
|
224
|
+
resolution: "Pre-flight check enforces Python 3.11+, auto-detect python3.11 binary"
|
|
225
|
+
fix: "automatic_with_guidance"
|
|
226
|
+
remediation:
|
|
227
|
+
- "Check Python version: python3 --version"
|
|
228
|
+
- "Locate Python 3.11: which python3.11"
|
|
229
|
+
- "macOS: brew install python@3.11"
|
|
230
|
+
- "Ubuntu: sudo apt install python3.11 python3.11-venv"
|
|
231
|
+
|
|
232
|
+
- package: "opentelemetry"
|
|
233
|
+
severity: "LOW"
|
|
234
|
+
type: "version_conflict"
|
|
235
|
+
description: "Version incompatibility between semgrep (Tier 3) and OpenTelemetry instrumentation (Tier 4)"
|
|
236
|
+
impact: "Warning messages during pip install, potential runtime compatibility issues"
|
|
237
|
+
resolution: "Make OpenTelemetry instrumentation optional in Tier 4"
|
|
238
|
+
fix: "user_choice"
|
|
239
|
+
details:
|
|
240
|
+
- "semgrep requires: opentelemetry-api~=1.37.0"
|
|
241
|
+
- "OpenTelemetry instrumentation requires: opentelemetry-api>=1.38.0"
|
|
242
|
+
- "Packages still work despite version mismatch"
|
|
243
|
+
|
|
244
|
+
- package: "setuptools,starlette"
|
|
245
|
+
severity: "MEDIUM"
|
|
246
|
+
type: "security_vulnerability"
|
|
247
|
+
count: 5
|
|
248
|
+
description: "5 vulnerabilities found initially in setuptools and starlette"
|
|
249
|
+
impact: "Security risks in dependencies"
|
|
250
|
+
resolution: "Fixed by running: pip install --upgrade setuptools starlette"
|
|
251
|
+
fix: "automatic"
|
|
252
|
+
status: "resolved"
|
|
253
|
+
|
|
254
|
+
# =============================================================================
|
|
255
|
+
# Stack 3: Dashboard Refine Stack (Next.js + Refine + React)
|
|
256
|
+
# =============================================================================
|
|
257
|
+
dashboard_refine:
|
|
258
|
+
name: "Dashboard Refine Stack"
|
|
259
|
+
description: "React admin dashboard with Refine framework and Next.js"
|
|
260
|
+
package_manager: "npm"
|
|
261
|
+
total_packages: 1408
|
|
262
|
+
build_time_seconds: 3.0
|
|
263
|
+
install_time_minutes: 20
|
|
264
|
+
|
|
265
|
+
base_framework:
|
|
266
|
+
next: "16.0.1"
|
|
267
|
+
react: "19.2.0"
|
|
268
|
+
react-dom: "19.2.0"
|
|
269
|
+
typescript: "5.9.3"
|
|
270
|
+
"@types/node": "20.19.24"
|
|
271
|
+
"@types/react": "19.2.2"
|
|
272
|
+
"@types/react-dom": "19.2.2"
|
|
273
|
+
|
|
274
|
+
styling:
|
|
275
|
+
tailwindcss: "4.1.17"
|
|
276
|
+
"@tailwindcss/postcss": "4.1.17"
|
|
277
|
+
|
|
278
|
+
refine_core:
|
|
279
|
+
"@refinedev/cli": "2.16.50"
|
|
280
|
+
"@refinedev/core": "5.0.5"
|
|
281
|
+
"@refinedev/nextjs-router": "7.0.4"
|
|
282
|
+
"@refinedev/react-table": "6.0.1"
|
|
283
|
+
"@refinedev/react-hook-form": "5.0.2"
|
|
284
|
+
|
|
285
|
+
ui_forms:
|
|
286
|
+
recharts: "3.3.0"
|
|
287
|
+
react-hook-form: "7.66.0"
|
|
288
|
+
zod: "4.1.12"
|
|
289
|
+
"@hookform/resolvers": "5.2.2"
|
|
290
|
+
lucide-react: "0.553.0"
|
|
291
|
+
class-variance-authority: "0.7.1"
|
|
292
|
+
clsx: "2.1.1"
|
|
293
|
+
tailwind-merge: "3.3.1"
|
|
294
|
+
|
|
295
|
+
tier1_essential:
|
|
296
|
+
eslint: "9.39.1"
|
|
297
|
+
eslint-config-next: "16.0.1"
|
|
298
|
+
"@typescript-eslint/parser": "8.46.3"
|
|
299
|
+
"@typescript-eslint/eslint-plugin": "8.46.3"
|
|
300
|
+
prettier: "3.6.2"
|
|
301
|
+
jest: "30.2.0"
|
|
302
|
+
"@types/jest": "30.0.0"
|
|
303
|
+
ts-jest: "29.4.5"
|
|
304
|
+
jest-environment-jsdom: "30.2.0"
|
|
305
|
+
"@testing-library/react": "16.3.0"
|
|
306
|
+
"@testing-library/jest-dom": "6.9.1"
|
|
307
|
+
|
|
308
|
+
tier2_standard:
|
|
309
|
+
husky: "9.1.7"
|
|
310
|
+
lint-staged: "16.2.6"
|
|
311
|
+
|
|
312
|
+
tier3_comprehensive:
|
|
313
|
+
jscpd: "4.0.5"
|
|
314
|
+
ts-prune: "0.10.3"
|
|
315
|
+
type-coverage: "2.29.7"
|
|
316
|
+
"@stryker-mutator/core": "9.3.0"
|
|
317
|
+
"@stryker-mutator/jest-runner": "9.3.0"
|
|
318
|
+
playwright: "1.56.1"
|
|
319
|
+
"@axe-core/playwright": "4.11.0"
|
|
320
|
+
eslint-plugin-jest-dom: "5.5.0"
|
|
321
|
+
eslint-plugin-testing-library: "7.13.3"
|
|
322
|
+
|
|
323
|
+
tier4_production:
|
|
324
|
+
patch-package: "8.0.1"
|
|
325
|
+
"@next/bundle-analyzer": "16.0.1"
|
|
326
|
+
"@lhci/cli": "0.15.1"
|
|
327
|
+
dotenv-cli: "11.0.0"
|
|
328
|
+
"@sentry/nextjs": "10.23.0"
|
|
329
|
+
"@vercel/analytics": "1.5.0"
|
|
330
|
+
|
|
331
|
+
installation:
|
|
332
|
+
pre_install:
|
|
333
|
+
- "(yes \"n\" | npx create-next-app@latest <project-name> --typescript --tailwind --eslint --app --no-src-dir --import-alias \"@/*\")"
|
|
334
|
+
|
|
335
|
+
commands:
|
|
336
|
+
# Incremental installation matching tier structure
|
|
337
|
+
base: "npm install next@16.0.1 react@19.2.0 react-dom@19.2.0 @refinedev/cli@2.16.50 @refinedev/core@5.0.5 @refinedev/nextjs-router@7.0.4 @refinedev/react-table@6.0.1 @refinedev/react-hook-form@5.0.2 recharts@3.3.0 react-hook-form@7.66.0 zod@4.1.12 @hookform/resolvers@5.2.2 lucide-react@0.553.0 class-variance-authority@0.7.1 clsx@2.1.1 tailwind-merge@3.3.1 tailwindcss@4.1.17 @tailwindcss/postcss@4.1.17"
|
|
338
|
+
|
|
339
|
+
tier1: "npm install --save-dev eslint@9.39.1 eslint-config-next@16.0.1 @typescript-eslint/parser@8.46.3 @typescript-eslint/eslint-plugin@8.46.3 prettier@3.6.2 jest@30.2.0 @types/jest@30.0.0 ts-jest@29.4.5 jest-environment-jsdom@30.2.0 @testing-library/react@16.3.0 @testing-library/jest-dom@6.9.1"
|
|
340
|
+
|
|
341
|
+
tier2: "npm install --save-dev husky@9.1.7 lint-staged@16.2.6"
|
|
342
|
+
|
|
343
|
+
tier3: "npm install --save-dev jscpd@4.0.5 ts-prune@0.10.3 type-coverage@2.29.7 @stryker-mutator/core@9.3.0 @stryker-mutator/jest-runner@9.3.0 @playwright/test@1.56.1 playwright@1.56.1 @axe-core/playwright@4.11.0 eslint-plugin-jest-dom@5.5.0 eslint-plugin-testing-library@7.13.3"
|
|
344
|
+
|
|
345
|
+
# CRITICAL: patch-package MUST be installed before Sentry
|
|
346
|
+
tier4_dev: "npm install --save-dev patch-package@8.0.1 @next/bundle-analyzer@16.0.1 @lhci/cli@0.15.1 dotenv-cli@11.0.0"
|
|
347
|
+
|
|
348
|
+
tier4_prod: "npm install @sentry/nextjs@10.23.0 @vercel/analytics@1.5.0"
|
|
349
|
+
|
|
350
|
+
test_command: "npm run build"
|
|
351
|
+
dev_command: "npm run dev"
|
|
352
|
+
|
|
353
|
+
known_issues:
|
|
354
|
+
- package: "@lhci/cli"
|
|
355
|
+
severity: "LOW"
|
|
356
|
+
type: "security_vulnerability"
|
|
357
|
+
count: 4
|
|
358
|
+
description: "Same 4 LOW severity vulnerabilities as T3 Stack"
|
|
359
|
+
impact: "Dev-only tool, no production impact"
|
|
360
|
+
resolution: "Accepted and documented"
|
|
361
|
+
production_risk: "NONE"
|
|
362
|
+
|
|
363
|
+
- package: "@sentry/nextjs"
|
|
364
|
+
severity: "LOW"
|
|
365
|
+
type: "installation_dependency"
|
|
366
|
+
description: "Requires patch-package to be installed first"
|
|
367
|
+
impact: "Installation fails if patch-package not present"
|
|
368
|
+
resolution: "Install patch-package before Sentry"
|
|
369
|
+
fix: "automatic"
|
|
370
|
+
|
|
371
|
+
# =============================================================================
|
|
372
|
+
# Stack 4: Full-Stack Next.js (Next.js + Prisma + Zod)
|
|
373
|
+
# =============================================================================
|
|
374
|
+
fullstack_nextjs:
|
|
375
|
+
name: "Full-Stack Next.js"
|
|
376
|
+
description: "Simplest full-stack setup with Next.js, Prisma, and Zod"
|
|
377
|
+
package_manager: "npm"
|
|
378
|
+
total_packages: 1231
|
|
379
|
+
build_time_seconds: 3.2
|
|
380
|
+
install_time_minutes: 10
|
|
381
|
+
|
|
382
|
+
base_framework:
|
|
383
|
+
next: "16.0.1"
|
|
384
|
+
react: "19.2.0"
|
|
385
|
+
react-dom: "19.2.0"
|
|
386
|
+
typescript: "5.9.3"
|
|
387
|
+
"@types/node": "20.19.24"
|
|
388
|
+
"@types/react": "19.2.2"
|
|
389
|
+
"@types/react-dom": "19.2.2"
|
|
390
|
+
|
|
391
|
+
styling:
|
|
392
|
+
tailwindcss: "4.1.17"
|
|
393
|
+
"@tailwindcss/postcss": "4.1.17"
|
|
394
|
+
|
|
395
|
+
database:
|
|
396
|
+
prisma: "6.19.0"
|
|
397
|
+
"@prisma/client": "6.19.0"
|
|
398
|
+
zod: "4.1.12"
|
|
399
|
+
|
|
400
|
+
tier1_essential:
|
|
401
|
+
eslint: "9.39.1"
|
|
402
|
+
eslint-config-next: "16.0.1"
|
|
403
|
+
prettier: "3.6.2"
|
|
404
|
+
jest: "30.2.0"
|
|
405
|
+
"@types/jest": "30.0.0"
|
|
406
|
+
ts-jest: "29.4.5"
|
|
407
|
+
jest-environment-jsdom: "30.2.0"
|
|
408
|
+
"@testing-library/react": "16.3.0"
|
|
409
|
+
"@testing-library/jest-dom": "6.9.1"
|
|
410
|
+
|
|
411
|
+
tier2_standard:
|
|
412
|
+
husky: "9.1.7"
|
|
413
|
+
lint-staged: "16.2.6"
|
|
414
|
+
|
|
415
|
+
tier3_comprehensive:
|
|
416
|
+
jscpd: "4.0.5"
|
|
417
|
+
ts-prune: "0.10.3"
|
|
418
|
+
type-coverage: "2.29.7"
|
|
419
|
+
"@stryker-mutator/core": "9.3.0"
|
|
420
|
+
"@stryker-mutator/jest-runner": "9.3.0"
|
|
421
|
+
playwright: "1.56.1"
|
|
422
|
+
"@axe-core/playwright": "4.11.0"
|
|
423
|
+
eslint-plugin-jest-dom: "5.5.0"
|
|
424
|
+
eslint-plugin-testing-library: "7.13.3"
|
|
425
|
+
|
|
426
|
+
tier4_production:
|
|
427
|
+
patch-package: "8.0.1"
|
|
428
|
+
"@next/bundle-analyzer": "16.0.1"
|
|
429
|
+
"@lhci/cli": "0.15.1"
|
|
430
|
+
dotenv-cli: "11.0.0"
|
|
431
|
+
"@sentry/nextjs": "10.23.0"
|
|
432
|
+
"@vercel/analytics": "1.5.0"
|
|
433
|
+
|
|
434
|
+
installation:
|
|
435
|
+
pre_install:
|
|
436
|
+
- "(yes \"n\" | npx create-next-app@latest <project-name> --typescript --tailwind --eslint --app --no-src-dir --import-alias \"@/*\")"
|
|
437
|
+
|
|
438
|
+
commands:
|
|
439
|
+
# Incremental installation matching tier structure
|
|
440
|
+
base: "npm install next@16.0.1 react@19.2.0 react-dom@19.2.0 prisma@6.19.0 @prisma/client@6.19.0 zod@4.1.12 tailwindcss@4.1.17 @tailwindcss/postcss@4.1.17"
|
|
441
|
+
|
|
442
|
+
tier1: "npm install --save-dev eslint@9.39.1 eslint-config-next@16.0.1 @typescript-eslint/parser@8.46.3 @typescript-eslint/eslint-plugin@8.46.3 prettier@3.6.2 jest@30.2.0 @types/jest@30.0.0 ts-jest@29.4.5 jest-environment-jsdom@30.2.0 @testing-library/react@16.3.0 @testing-library/jest-dom@6.9.1"
|
|
443
|
+
|
|
444
|
+
tier2: "npm install --save-dev husky@9.1.7 lint-staged@16.2.6"
|
|
445
|
+
|
|
446
|
+
tier3: "npm install --save-dev jscpd@4.0.5 ts-prune@0.10.3 type-coverage@2.29.7 @stryker-mutator/core@9.3.0 @stryker-mutator/jest-runner@9.3.0 @playwright/test@1.56.1 playwright@1.56.1 @axe-core/playwright@4.11.0 eslint-plugin-jest-dom@5.5.0 eslint-plugin-testing-library@7.13.3"
|
|
447
|
+
|
|
448
|
+
# CRITICAL: patch-package MUST be installed before Sentry
|
|
449
|
+
tier4_dev: "npm install --save-dev patch-package@8.0.1 @next/bundle-analyzer@16.0.1 @lhci/cli@0.15.1 dotenv-cli@11.0.0"
|
|
450
|
+
|
|
451
|
+
tier4_prod: "npm install @sentry/nextjs@10.23.0 @vercel/analytics@1.5.0"
|
|
452
|
+
|
|
453
|
+
test_command: "npm run build"
|
|
454
|
+
dev_command: "npm run dev"
|
|
455
|
+
|
|
456
|
+
known_issues:
|
|
457
|
+
- package: "@lhci/cli"
|
|
458
|
+
severity: "LOW"
|
|
459
|
+
type: "security_vulnerability"
|
|
460
|
+
count: 4
|
|
461
|
+
description: "Same 4 LOW severity vulnerabilities as other Next.js stacks"
|
|
462
|
+
impact: "Dev-only tool, no production impact"
|
|
463
|
+
resolution: "Accepted and documented"
|
|
464
|
+
production_risk: "NONE"
|
|
465
|
+
|
|
466
|
+
- package: "@sentry/nextjs"
|
|
467
|
+
severity: "LOW"
|
|
468
|
+
type: "installation_dependency"
|
|
469
|
+
description: "Requires patch-package (included preemptively)"
|
|
470
|
+
impact: "None - patch-package installed automatically"
|
|
471
|
+
resolution: "Included in combined installation command"
|
|
472
|
+
fix: "automatic"
|
|
473
|
+
|
|
474
|
+
# =============================================================================
|
|
475
|
+
# Cross-Stack Insights
|
|
476
|
+
# =============================================================================
|
|
477
|
+
version_convergence:
|
|
478
|
+
description: "All three Next.js-based stacks converged on identical versions for shared dependencies"
|
|
479
|
+
benefits:
|
|
480
|
+
- "Simplified maintenance and updates"
|
|
481
|
+
- "Consistent developer experience across stacks"
|
|
482
|
+
- "Easier transitions between project types"
|
|
483
|
+
- "Single source of truth for Next.js ecosystem versions"
|
|
484
|
+
|
|
485
|
+
shared_versions:
|
|
486
|
+
next: "16.0.1"
|
|
487
|
+
react: "19.2.0"
|
|
488
|
+
react-dom: "19.2.0"
|
|
489
|
+
tailwindcss: "4.1.17"
|
|
490
|
+
jest: "30.2.0"
|
|
491
|
+
zod: "4.1.12"
|
|
492
|
+
eslint: "9.39.1"
|
|
493
|
+
prettier: "3.6.2"
|
|
494
|
+
playwright: "1.56.1"
|
|
495
|
+
|
|
496
|
+
key_learnings:
|
|
497
|
+
javascript_typescript:
|
|
498
|
+
- "Always use @latest for better version resolution"
|
|
499
|
+
- "React 19.2 is production-ready with modern stack"
|
|
500
|
+
- "Next.js 16 just released, fully compatible"
|
|
501
|
+
- "Zod v4 major version appears backward compatible"
|
|
502
|
+
- "Jest v30 major version updated seamlessly"
|
|
503
|
+
- "Prisma rapid minor updates (6.1.0 → 6.19.0)"
|
|
504
|
+
- "Tailwind v4 requires migration to @tailwindcss/postcss"
|
|
505
|
+
- "tRPC versioning is critical (11.7.1 works with Next 16)"
|
|
506
|
+
|
|
507
|
+
python:
|
|
508
|
+
- "Use --upgrade flag for best compatible versions"
|
|
509
|
+
- "Pydantic 2.x auto-upgrades are safe"
|
|
510
|
+
- "Quality tools update frequently (semgrep 1.99 → 1.142)"
|
|
511
|
+
- "Python patch versions flexible (3.11.7 vs 3.11.11)"
|
|
512
|
+
- "Core packages stable (FastAPI, SQLModel, SQLAlchemy)"
|
|
513
|
+
|
|
514
|
+
universal:
|
|
515
|
+
- "Incremental validation works - add one tier at a time"
|
|
516
|
+
- "Let package managers resolve - auto-resolution finds better versions"
|
|
517
|
+
- "Document actual versions - what installs ≠ what was researched"
|
|
518
|
+
- "Test everything - build, test, dev server all critical"
|
|
519
|
+
|
|
520
|
+
installation_strategy:
|
|
521
|
+
incremental:
|
|
522
|
+
description: "Install and test each tier separately"
|
|
523
|
+
pros:
|
|
524
|
+
- "Safer - catches issues early"
|
|
525
|
+
- "Easier to debug if problems occur"
|
|
526
|
+
- "Better for first-time users"
|
|
527
|
+
cons:
|
|
528
|
+
- "Slower total installation time"
|
|
529
|
+
- "More intermediate steps"
|
|
530
|
+
recommended_for:
|
|
531
|
+
- "First-time users"
|
|
532
|
+
- "Debugging installation issues"
|
|
533
|
+
- "Learning the stack"
|
|
534
|
+
|
|
535
|
+
combined:
|
|
536
|
+
description: "Install multiple tiers at once"
|
|
537
|
+
pros:
|
|
538
|
+
- "Faster total installation time"
|
|
539
|
+
- "Fewer intermediate steps"
|
|
540
|
+
- "Better for CI/CD"
|
|
541
|
+
cons:
|
|
542
|
+
- "Harder to debug if issues occur"
|
|
543
|
+
- "Requires confidence in tested patterns"
|
|
544
|
+
recommended_for:
|
|
545
|
+
- "CI/CD pipelines"
|
|
546
|
+
- "Experienced users"
|
|
547
|
+
- "Repeat installations"
|
|
548
|
+
|
|
549
|
+
time_estimates:
|
|
550
|
+
by_tier:
|
|
551
|
+
tier1_only:
|
|
552
|
+
saas_t3: "10 minutes"
|
|
553
|
+
ml_ai_fastapi: "15 minutes"
|
|
554
|
+
dashboard_refine: "8 minutes"
|
|
555
|
+
fullstack_nextjs: "5 minutes"
|
|
556
|
+
|
|
557
|
+
tier1_2:
|
|
558
|
+
saas_t3: "15 minutes"
|
|
559
|
+
ml_ai_fastapi: "20 minutes"
|
|
560
|
+
dashboard_refine: "12 minutes"
|
|
561
|
+
fullstack_nextjs: "7 minutes"
|
|
562
|
+
|
|
563
|
+
tier1_3:
|
|
564
|
+
saas_t3: "20 minutes"
|
|
565
|
+
ml_ai_fastapi: "28 minutes"
|
|
566
|
+
dashboard_refine: "15 minutes"
|
|
567
|
+
fullstack_nextjs: "8 minutes"
|
|
568
|
+
|
|
569
|
+
tier1_4:
|
|
570
|
+
saas_t3: "25 minutes"
|
|
571
|
+
ml_ai_fastapi: "35 minutes"
|
|
572
|
+
dashboard_refine: "20 minutes"
|
|
573
|
+
fullstack_nextjs: "10 minutes"
|
|
574
|
+
|
|
575
|
+
# =============================================================================
|
|
576
|
+
# Usage Instructions
|
|
577
|
+
# =============================================================================
|
|
578
|
+
usage_instructions:
|
|
579
|
+
reading_versions:
|
|
580
|
+
- "Access versions via: stacks.<stack_name>.<tier>.<package>"
|
|
581
|
+
- "Example: stacks.saas_t3.base_framework.next → '16.0.1'"
|
|
582
|
+
- "Example: stacks.ml_ai_fastapi.tier1_essential.pytest → '8.3.4'"
|
|
583
|
+
|
|
584
|
+
installation_commands:
|
|
585
|
+
- "Installation commands available at: stacks.<stack_name>.installation.commands"
|
|
586
|
+
- "Pre-install steps at: stacks.<stack_name>.installation.pre_install"
|
|
587
|
+
- "Test commands at: stacks.<stack_name>.installation.test_command"
|
|
588
|
+
|
|
589
|
+
known_issues:
|
|
590
|
+
- "Check known_issues array for each stack before installation"
|
|
591
|
+
- "Each issue includes severity, description, impact, and resolution"
|
|
592
|
+
- "Some fixes are automatic, others require user choice or guidance"
|
|
593
|
+
|
|
594
|
+
version_updates:
|
|
595
|
+
- "This file should be updated whenever versions are validated"
|
|
596
|
+
- "Future: Automated script to check for updates and test compatibility"
|
|
597
|
+
- "Update validation_date in metadata when versions change"
|
|
598
|
+
|
|
599
|
+
# =============================================================================
|
|
600
|
+
# Future Enhancements
|
|
601
|
+
# =============================================================================
|
|
602
|
+
future_enhancements:
|
|
603
|
+
- name: "Automated version checking"
|
|
604
|
+
description: "Script to check npm/PyPI for latest versions and test compatibility"
|
|
605
|
+
status: "planned"
|
|
606
|
+
|
|
607
|
+
- name: "Dependency vulnerability scanning"
|
|
608
|
+
description: "Automated npm audit / pip-audit integration"
|
|
609
|
+
status: "planned"
|
|
610
|
+
|
|
611
|
+
- name: "Breaking change detection"
|
|
612
|
+
description: "Detect when major versions change and require testing"
|
|
613
|
+
status: "planned"
|
|
614
|
+
|
|
615
|
+
- name: "Multi-environment support"
|
|
616
|
+
description: "Separate versions for development, staging, production"
|
|
617
|
+
status: "consideration"
|