dk-harness 0.1.0
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/LICENSE +201 -0
- package/README.md +267 -0
- package/bin/dk-harness +206 -0
- package/package.json +36 -0
- package/templates/next-axum-monorepo/.eslintrc.js +13 -0
- package/templates/next-axum-monorepo/.github/workflows/ci.yml +92 -0
- package/templates/next-axum-monorepo/.gitleaks.toml +5 -0
- package/templates/next-axum-monorepo/.prettierignore +7 -0
- package/templates/next-axum-monorepo/.prettierrc +11 -0
- package/templates/next-axum-monorepo/AGENTS.md +35 -0
- package/templates/next-axum-monorepo/ARCHITECTURE.md +58 -0
- package/templates/next-axum-monorepo/README.md +45 -0
- package/templates/next-axum-monorepo/apps/axum/Cargo.lock +1041 -0
- package/templates/next-axum-monorepo/apps/axum/Cargo.toml +12 -0
- package/templates/next-axum-monorepo/apps/axum/deny.toml +13 -0
- package/templates/next-axum-monorepo/apps/axum/src/api/mod.rs +1 -0
- package/templates/next-axum-monorepo/apps/axum/src/api/router.rs +53 -0
- package/templates/next-axum-monorepo/apps/axum/src/core/config.rs +17 -0
- package/templates/next-axum-monorepo/apps/axum/src/core/mod.rs +1 -0
- package/templates/next-axum-monorepo/apps/axum/src/domain/health.rs +22 -0
- package/templates/next-axum-monorepo/apps/axum/src/domain/mod.rs +1 -0
- package/templates/next-axum-monorepo/apps/axum/src/lib.rs +6 -0
- package/templates/next-axum-monorepo/apps/axum/src/main.rs +15 -0
- package/templates/next-axum-monorepo/apps/web/app/favicon.ico +0 -0
- package/templates/next-axum-monorepo/apps/web/app/layout.tsx +43 -0
- package/templates/next-axum-monorepo/apps/web/app/page.tsx +19 -0
- package/templates/next-axum-monorepo/apps/web/biome.json +16 -0
- package/templates/next-axum-monorepo/apps/web/components/.gitkeep +0 -0
- package/templates/next-axum-monorepo/apps/web/components/theme-provider.tsx +71 -0
- package/templates/next-axum-monorepo/apps/web/components.json +23 -0
- package/templates/next-axum-monorepo/apps/web/dependency-cruiser.cjs +66 -0
- package/templates/next-axum-monorepo/apps/web/eslint.config.js +4 -0
- package/templates/next-axum-monorepo/apps/web/hooks/.gitkeep +0 -0
- package/templates/next-axum-monorepo/apps/web/knip.json +17 -0
- package/templates/next-axum-monorepo/apps/web/lib/.gitkeep +0 -0
- package/templates/next-axum-monorepo/apps/web/lighthouserc.json +23 -0
- package/templates/next-axum-monorepo/apps/web/next-env.d.ts +6 -0
- package/templates/next-axum-monorepo/apps/web/next.config.mjs +6 -0
- package/templates/next-axum-monorepo/apps/web/package.json +46 -0
- package/templates/next-axum-monorepo/apps/web/playwright.config.ts +18 -0
- package/templates/next-axum-monorepo/apps/web/postcss.config.mjs +1 -0
- package/templates/next-axum-monorepo/apps/web/skills-lock.json +15 -0
- package/templates/next-axum-monorepo/apps/web/tests/e2e/smoke.spec.ts +13 -0
- package/templates/next-axum-monorepo/apps/web/tests/unit/page.test.tsx +16 -0
- package/templates/next-axum-monorepo/apps/web/tsconfig.json +23 -0
- package/templates/next-axum-monorepo/apps/web/vitest.config.ts +13 -0
- package/templates/next-axum-monorepo/apps/web/vitest.setup.ts +1 -0
- package/templates/next-axum-monorepo/docs/DESIGN.md +10 -0
- package/templates/next-axum-monorepo/docs/FRONTEND.md +26 -0
- package/templates/next-axum-monorepo/docs/PLANS.md +25 -0
- package/templates/next-axum-monorepo/docs/PRODUCT_SENSE.md +11 -0
- package/templates/next-axum-monorepo/docs/QUALITY_SCORE.md +16 -0
- package/templates/next-axum-monorepo/docs/RELIABILITY.md +39 -0
- package/templates/next-axum-monorepo/docs/SECURITY.md +16 -0
- package/templates/next-axum-monorepo/docs/design-docs/core-beliefs.md +6 -0
- package/templates/next-axum-monorepo/docs/design-docs/included-skills.md +16 -0
- package/templates/next-axum-monorepo/docs/design-docs/index.md +6 -0
- package/templates/next-axum-monorepo/docs/exec-plans/active/.gitkeep +1 -0
- package/templates/next-axum-monorepo/docs/exec-plans/completed/.gitkeep +1 -0
- package/templates/next-axum-monorepo/docs/exec-plans/repeated-work.md +15 -0
- package/templates/next-axum-monorepo/docs/exec-plans/tech-debt-tracker.md +3 -0
- package/templates/next-axum-monorepo/docs/generated/db-schema.md +3 -0
- package/templates/next-axum-monorepo/docs/product-specs/index.md +5 -0
- package/templates/next-axum-monorepo/docs/product-specs/new-user-onboarding.md +12 -0
- package/templates/next-axum-monorepo/docs/references/design-system-reference-llms.txt +13 -0
- package/templates/next-axum-monorepo/justfile +36 -0
- package/templates/next-axum-monorepo/lefthook.yml +8 -0
- package/templates/next-axum-monorepo/mise.toml +5 -0
- package/templates/next-axum-monorepo/package.json +41 -0
- package/templates/next-axum-monorepo/packages/eslint-config/README.md +3 -0
- package/templates/next-axum-monorepo/packages/eslint-config/base.js +32 -0
- package/templates/next-axum-monorepo/packages/eslint-config/next.js +51 -0
- package/templates/next-axum-monorepo/packages/eslint-config/package.json +26 -0
- package/templates/next-axum-monorepo/packages/eslint-config/react-internal.js +41 -0
- package/templates/next-axum-monorepo/packages/typescript-config/README.md +3 -0
- package/templates/next-axum-monorepo/packages/typescript-config/base.json +20 -0
- package/templates/next-axum-monorepo/packages/typescript-config/nextjs.json +13 -0
- package/templates/next-axum-monorepo/packages/typescript-config/package.json +9 -0
- package/templates/next-axum-monorepo/packages/typescript-config/react-library.json +8 -0
- package/templates/next-axum-monorepo/packages/ui/components.json +23 -0
- package/templates/next-axum-monorepo/packages/ui/dependency-cruiser.cjs +100 -0
- package/templates/next-axum-monorepo/packages/ui/eslint.config.js +4 -0
- package/templates/next-axum-monorepo/packages/ui/package.json +49 -0
- package/templates/next-axum-monorepo/packages/ui/postcss.config.mjs +6 -0
- package/templates/next-axum-monorepo/packages/ui/src/config/.gitkeep +1 -0
- package/templates/next-axum-monorepo/packages/ui/src/providers/.gitkeep +1 -0
- package/templates/next-axum-monorepo/packages/ui/src/repo/.gitkeep +1 -0
- package/templates/next-axum-monorepo/packages/ui/src/runtime/hooks/.gitkeep +1 -0
- package/templates/next-axum-monorepo/packages/ui/src/runtime/utils.ts +6 -0
- package/templates/next-axum-monorepo/packages/ui/src/service/.gitkeep +1 -0
- package/templates/next-axum-monorepo/packages/ui/src/styles/globals.css +129 -0
- package/templates/next-axum-monorepo/packages/ui/src/types/.gitkeep +1 -0
- package/templates/next-axum-monorepo/packages/ui/src/ui/button.tsx +65 -0
- package/templates/next-axum-monorepo/packages/ui/src/utils/.gitkeep +1 -0
- package/templates/next-axum-monorepo/packages/ui/tsconfig.json +10 -0
- package/templates/next-axum-monorepo/packages/ui/tsconfig.lint.json +8 -0
- package/templates/next-axum-monorepo/pnpm-lock.yaml +12402 -0
- package/templates/next-axum-monorepo/pnpm-workspace.yaml +3 -0
- package/templates/next-axum-monorepo/renovate.json +6 -0
- package/templates/next-axum-monorepo/scripts/check-rust-layers.mjs +149 -0
- package/templates/next-axum-monorepo/skills-lock.json +30 -0
- package/templates/next-axum-monorepo/tsconfig.json +4 -0
- package/templates/next-axum-monorepo/turbo.json +27 -0
- package/templates/next-fastapi-monorepo/.eslintrc.js +13 -0
- package/templates/next-fastapi-monorepo/.github/workflows/ci.yml +92 -0
- package/templates/next-fastapi-monorepo/.gitleaks.toml +5 -0
- package/templates/next-fastapi-monorepo/.prettierignore +7 -0
- package/templates/next-fastapi-monorepo/.prettierrc +11 -0
- package/templates/next-fastapi-monorepo/AGENTS.md +35 -0
- package/templates/next-fastapi-monorepo/ARCHITECTURE.md +55 -0
- package/templates/next-fastapi-monorepo/README.md +65 -0
- package/templates/next-fastapi-monorepo/apps/api/.python-version +1 -0
- package/templates/next-fastapi-monorepo/apps/api/README.md +17 -0
- package/templates/next-fastapi-monorepo/apps/api/app/__init__.py +1 -0
- package/templates/next-fastapi-monorepo/apps/api/app/api/__init__.py +2 -0
- package/templates/next-fastapi-monorepo/apps/api/app/api/routes.py +16 -0
- package/templates/next-fastapi-monorepo/apps/api/app/core/__init__.py +2 -0
- package/templates/next-fastapi-monorepo/apps/api/app/core/config.py +11 -0
- package/templates/next-fastapi-monorepo/apps/api/app/domain/__init__.py +2 -0
- package/templates/next-fastapi-monorepo/apps/api/app/domain/health.py +7 -0
- package/templates/next-fastapi-monorepo/apps/api/app/main.py +8 -0
- package/templates/next-fastapi-monorepo/apps/api/package.json +14 -0
- package/templates/next-fastapi-monorepo/apps/api/pyproject.toml +54 -0
- package/templates/next-fastapi-monorepo/apps/api/tests/test_main.py +27 -0
- package/templates/next-fastapi-monorepo/apps/api/uv.lock +1797 -0
- package/templates/next-fastapi-monorepo/apps/web/app/favicon.ico +0 -0
- package/templates/next-fastapi-monorepo/apps/web/app/layout.tsx +43 -0
- package/templates/next-fastapi-monorepo/apps/web/app/page.tsx +19 -0
- package/templates/next-fastapi-monorepo/apps/web/biome.json +16 -0
- package/templates/next-fastapi-monorepo/apps/web/components/.gitkeep +0 -0
- package/templates/next-fastapi-monorepo/apps/web/components/theme-provider.tsx +71 -0
- package/templates/next-fastapi-monorepo/apps/web/components.json +23 -0
- package/templates/next-fastapi-monorepo/apps/web/dependency-cruiser.cjs +66 -0
- package/templates/next-fastapi-monorepo/apps/web/eslint.config.js +4 -0
- package/templates/next-fastapi-monorepo/apps/web/hooks/.gitkeep +0 -0
- package/templates/next-fastapi-monorepo/apps/web/knip.json +17 -0
- package/templates/next-fastapi-monorepo/apps/web/lib/.gitkeep +0 -0
- package/templates/next-fastapi-monorepo/apps/web/lighthouserc.json +23 -0
- package/templates/next-fastapi-monorepo/apps/web/next-env.d.ts +6 -0
- package/templates/next-fastapi-monorepo/apps/web/next.config.mjs +6 -0
- package/templates/next-fastapi-monorepo/apps/web/package.json +46 -0
- package/templates/next-fastapi-monorepo/apps/web/playwright.config.ts +18 -0
- package/templates/next-fastapi-monorepo/apps/web/postcss.config.mjs +1 -0
- package/templates/next-fastapi-monorepo/apps/web/skills-lock.json +40 -0
- package/templates/next-fastapi-monorepo/apps/web/tests/e2e/smoke.spec.ts +13 -0
- package/templates/next-fastapi-monorepo/apps/web/tests/unit/page.test.tsx +16 -0
- package/templates/next-fastapi-monorepo/apps/web/tsconfig.json +23 -0
- package/templates/next-fastapi-monorepo/apps/web/vitest.config.ts +13 -0
- package/templates/next-fastapi-monorepo/apps/web/vitest.setup.ts +1 -0
- package/templates/next-fastapi-monorepo/docs/DESIGN.md +10 -0
- package/templates/next-fastapi-monorepo/docs/FRONTEND.md +26 -0
- package/templates/next-fastapi-monorepo/docs/PLANS.md +25 -0
- package/templates/next-fastapi-monorepo/docs/PRODUCT_SENSE.md +11 -0
- package/templates/next-fastapi-monorepo/docs/QUALITY_SCORE.md +16 -0
- package/templates/next-fastapi-monorepo/docs/RELIABILITY.md +38 -0
- package/templates/next-fastapi-monorepo/docs/SECURITY.md +15 -0
- package/templates/next-fastapi-monorepo/docs/design-docs/core-beliefs.md +6 -0
- package/templates/next-fastapi-monorepo/docs/design-docs/included-skills.md +13 -0
- package/templates/next-fastapi-monorepo/docs/design-docs/index.md +6 -0
- package/templates/next-fastapi-monorepo/docs/exec-plans/active/.gitkeep +1 -0
- package/templates/next-fastapi-monorepo/docs/exec-plans/completed/.gitkeep +1 -0
- package/templates/next-fastapi-monorepo/docs/exec-plans/repeated-work.md +15 -0
- package/templates/next-fastapi-monorepo/docs/exec-plans/tech-debt-tracker.md +3 -0
- package/templates/next-fastapi-monorepo/docs/generated/db-schema.md +3 -0
- package/templates/next-fastapi-monorepo/docs/product-specs/index.md +5 -0
- package/templates/next-fastapi-monorepo/docs/product-specs/new-user-onboarding.md +12 -0
- package/templates/next-fastapi-monorepo/docs/references/design-system-reference-llms.txt +13 -0
- package/templates/next-fastapi-monorepo/docs/references/uv-llms.txt +7 -0
- package/templates/next-fastapi-monorepo/justfile +31 -0
- package/templates/next-fastapi-monorepo/lefthook.yml +8 -0
- package/templates/next-fastapi-monorepo/mise.toml +6 -0
- package/templates/next-fastapi-monorepo/package.json +41 -0
- package/templates/next-fastapi-monorepo/packages/eslint-config/README.md +3 -0
- package/templates/next-fastapi-monorepo/packages/eslint-config/base.js +32 -0
- package/templates/next-fastapi-monorepo/packages/eslint-config/next.js +51 -0
- package/templates/next-fastapi-monorepo/packages/eslint-config/package.json +26 -0
- package/templates/next-fastapi-monorepo/packages/eslint-config/react-internal.js +41 -0
- package/templates/next-fastapi-monorepo/packages/typescript-config/README.md +3 -0
- package/templates/next-fastapi-monorepo/packages/typescript-config/base.json +20 -0
- package/templates/next-fastapi-monorepo/packages/typescript-config/nextjs.json +13 -0
- package/templates/next-fastapi-monorepo/packages/typescript-config/package.json +9 -0
- package/templates/next-fastapi-monorepo/packages/typescript-config/react-library.json +8 -0
- package/templates/next-fastapi-monorepo/packages/ui/components.json +23 -0
- package/templates/next-fastapi-monorepo/packages/ui/dependency-cruiser.cjs +100 -0
- package/templates/next-fastapi-monorepo/packages/ui/eslint.config.js +4 -0
- package/templates/next-fastapi-monorepo/packages/ui/package.json +49 -0
- package/templates/next-fastapi-monorepo/packages/ui/postcss.config.mjs +6 -0
- package/templates/next-fastapi-monorepo/packages/ui/src/config/.gitkeep +1 -0
- package/templates/next-fastapi-monorepo/packages/ui/src/providers/.gitkeep +1 -0
- package/templates/next-fastapi-monorepo/packages/ui/src/repo/.gitkeep +1 -0
- package/templates/next-fastapi-monorepo/packages/ui/src/runtime/hooks/.gitkeep +1 -0
- package/templates/next-fastapi-monorepo/packages/ui/src/runtime/utils.ts +6 -0
- package/templates/next-fastapi-monorepo/packages/ui/src/service/.gitkeep +1 -0
- package/templates/next-fastapi-monorepo/packages/ui/src/styles/globals.css +129 -0
- package/templates/next-fastapi-monorepo/packages/ui/src/types/.gitkeep +1 -0
- package/templates/next-fastapi-monorepo/packages/ui/src/ui/button.tsx +65 -0
- package/templates/next-fastapi-monorepo/packages/ui/src/utils/.gitkeep +1 -0
- package/templates/next-fastapi-monorepo/packages/ui/tsconfig.json +10 -0
- package/templates/next-fastapi-monorepo/packages/ui/tsconfig.lint.json +8 -0
- package/templates/next-fastapi-monorepo/pnpm-lock.yaml +12404 -0
- package/templates/next-fastapi-monorepo/pnpm-workspace.yaml +3 -0
- package/templates/next-fastapi-monorepo/renovate.json +6 -0
- package/templates/next-fastapi-monorepo/tsconfig.json +4 -0
- package/templates/next-fastapi-monorepo/turbo.json +27 -0
- package/templates/next-monorepo/.eslintrc.js +13 -0
- package/templates/next-monorepo/.github/workflows/ci.yml +76 -0
- package/templates/next-monorepo/.gitleaks.toml +5 -0
- package/templates/next-monorepo/.prettierignore +7 -0
- package/templates/next-monorepo/.prettierrc +11 -0
- package/templates/next-monorepo/AGENTS.md +35 -0
- package/templates/next-monorepo/ARCHITECTURE.md +67 -0
- package/templates/next-monorepo/README.md +45 -0
- package/templates/next-monorepo/apps/web/app/favicon.ico +0 -0
- package/templates/next-monorepo/apps/web/app/layout.tsx +43 -0
- package/templates/next-monorepo/apps/web/app/page.tsx +19 -0
- package/templates/next-monorepo/apps/web/biome.json +16 -0
- package/templates/next-monorepo/apps/web/components/.gitkeep +0 -0
- package/templates/next-monorepo/apps/web/components/theme-provider.tsx +71 -0
- package/templates/next-monorepo/apps/web/components.json +23 -0
- package/templates/next-monorepo/apps/web/dependency-cruiser.cjs +66 -0
- package/templates/next-monorepo/apps/web/eslint.config.js +4 -0
- package/templates/next-monorepo/apps/web/hooks/.gitkeep +0 -0
- package/templates/next-monorepo/apps/web/knip.json +17 -0
- package/templates/next-monorepo/apps/web/lib/.gitkeep +0 -0
- package/templates/next-monorepo/apps/web/lighthouserc.json +23 -0
- package/templates/next-monorepo/apps/web/next-env.d.ts +6 -0
- package/templates/next-monorepo/apps/web/next.config.mjs +6 -0
- package/templates/next-monorepo/apps/web/package.json +46 -0
- package/templates/next-monorepo/apps/web/playwright.config.ts +18 -0
- package/templates/next-monorepo/apps/web/postcss.config.mjs +1 -0
- package/templates/next-monorepo/apps/web/skills-lock.json +40 -0
- package/templates/next-monorepo/apps/web/tests/e2e/smoke.spec.ts +13 -0
- package/templates/next-monorepo/apps/web/tests/unit/page.test.tsx +16 -0
- package/templates/next-monorepo/apps/web/tsconfig.json +23 -0
- package/templates/next-monorepo/apps/web/vitest.config.ts +13 -0
- package/templates/next-monorepo/apps/web/vitest.setup.ts +1 -0
- package/templates/next-monorepo/docs/DESIGN.md +11 -0
- package/templates/next-monorepo/docs/FRONTEND.md +32 -0
- package/templates/next-monorepo/docs/PLANS.md +25 -0
- package/templates/next-monorepo/docs/PRODUCT_SENSE.md +11 -0
- package/templates/next-monorepo/docs/QUALITY_SCORE.md +18 -0
- package/templates/next-monorepo/docs/RELIABILITY.md +37 -0
- package/templates/next-monorepo/docs/SECURITY.md +14 -0
- package/templates/next-monorepo/docs/design-docs/core-beliefs.md +6 -0
- package/templates/next-monorepo/docs/design-docs/included-skills.md +13 -0
- package/templates/next-monorepo/docs/design-docs/index.md +6 -0
- package/templates/next-monorepo/docs/exec-plans/active/.gitkeep +1 -0
- package/templates/next-monorepo/docs/exec-plans/completed/.gitkeep +1 -0
- package/templates/next-monorepo/docs/exec-plans/repeated-work.md +15 -0
- package/templates/next-monorepo/docs/exec-plans/tech-debt-tracker.md +3 -0
- package/templates/next-monorepo/docs/generated/db-schema.md +3 -0
- package/templates/next-monorepo/docs/product-specs/index.md +5 -0
- package/templates/next-monorepo/docs/product-specs/new-user-onboarding.md +12 -0
- package/templates/next-monorepo/docs/references/design-system-reference-llms.txt +13 -0
- package/templates/next-monorepo/justfile +26 -0
- package/templates/next-monorepo/lefthook.yml +8 -0
- package/templates/next-monorepo/mise.toml +4 -0
- package/templates/next-monorepo/package.json +41 -0
- package/templates/next-monorepo/packages/eslint-config/README.md +3 -0
- package/templates/next-monorepo/packages/eslint-config/base.js +32 -0
- package/templates/next-monorepo/packages/eslint-config/next.js +51 -0
- package/templates/next-monorepo/packages/eslint-config/package.json +26 -0
- package/templates/next-monorepo/packages/eslint-config/react-internal.js +41 -0
- package/templates/next-monorepo/packages/typescript-config/README.md +3 -0
- package/templates/next-monorepo/packages/typescript-config/base.json +20 -0
- package/templates/next-monorepo/packages/typescript-config/nextjs.json +13 -0
- package/templates/next-monorepo/packages/typescript-config/package.json +9 -0
- package/templates/next-monorepo/packages/typescript-config/react-library.json +8 -0
- package/templates/next-monorepo/packages/ui/components.json +23 -0
- package/templates/next-monorepo/packages/ui/dependency-cruiser.cjs +100 -0
- package/templates/next-monorepo/packages/ui/eslint.config.js +4 -0
- package/templates/next-monorepo/packages/ui/package.json +49 -0
- package/templates/next-monorepo/packages/ui/postcss.config.mjs +6 -0
- package/templates/next-monorepo/packages/ui/src/config/.gitkeep +1 -0
- package/templates/next-monorepo/packages/ui/src/providers/.gitkeep +1 -0
- package/templates/next-monorepo/packages/ui/src/repo/.gitkeep +1 -0
- package/templates/next-monorepo/packages/ui/src/runtime/hooks/.gitkeep +1 -0
- package/templates/next-monorepo/packages/ui/src/runtime/utils.ts +6 -0
- package/templates/next-monorepo/packages/ui/src/service/.gitkeep +1 -0
- package/templates/next-monorepo/packages/ui/src/styles/globals.css +129 -0
- package/templates/next-monorepo/packages/ui/src/types/.gitkeep +1 -0
- package/templates/next-monorepo/packages/ui/src/ui/button.tsx +65 -0
- package/templates/next-monorepo/packages/ui/src/utils/.gitkeep +1 -0
- package/templates/next-monorepo/packages/ui/tsconfig.json +10 -0
- package/templates/next-monorepo/packages/ui/tsconfig.lint.json +8 -0
- package/templates/next-monorepo/pnpm-lock.yaml +12402 -0
- package/templates/next-monorepo/pnpm-workspace.yaml +3 -0
- package/templates/next-monorepo/renovate.json +6 -0
- package/templates/next-monorepo/tsconfig.json +4 -0
- package/templates/next-monorepo/turbo.json +27 -0
- package/templates/registry.json +22 -0
package/package.json
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "dk-harness",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Scaffold Next.js, FastAPI, and Axum projects from the dk-harness template catalog.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"scaffold",
|
|
7
|
+
"template",
|
|
8
|
+
"cli",
|
|
9
|
+
"nextjs",
|
|
10
|
+
"fastapi",
|
|
11
|
+
"axum"
|
|
12
|
+
],
|
|
13
|
+
"homepage": "https://github.com/DongkuKim/dk-harness#readme",
|
|
14
|
+
"bugs": {
|
|
15
|
+
"url": "https://github.com/DongkuKim/dk-harness/issues"
|
|
16
|
+
},
|
|
17
|
+
"repository": {
|
|
18
|
+
"type": "git",
|
|
19
|
+
"url": "git+https://github.com/DongkuKim/dk-harness.git"
|
|
20
|
+
},
|
|
21
|
+
"bin": {
|
|
22
|
+
"dk-harness": "./bin/dk-harness"
|
|
23
|
+
},
|
|
24
|
+
"scripts": {
|
|
25
|
+
"release:check": "node ./scripts/release-pack-check.mjs"
|
|
26
|
+
},
|
|
27
|
+
"files": [
|
|
28
|
+
"bin/dk-harness",
|
|
29
|
+
"templates",
|
|
30
|
+
"README.md"
|
|
31
|
+
],
|
|
32
|
+
"publishConfig": {
|
|
33
|
+
"access": "public"
|
|
34
|
+
},
|
|
35
|
+
"license": "Apache-2.0"
|
|
36
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// Root-level ESLint config for a Turborepo workspace.
|
|
2
|
+
// App/package lint rules live in each workspace's eslint.config.js.
|
|
3
|
+
/** @type {import("eslint").Linter.Config} */
|
|
4
|
+
module.exports = {
|
|
5
|
+
root: true,
|
|
6
|
+
ignorePatterns: [
|
|
7
|
+
"**/node_modules/**",
|
|
8
|
+
"**/.next/**",
|
|
9
|
+
"**/dist/**",
|
|
10
|
+
"**/.turbo/**",
|
|
11
|
+
"**/coverage/**",
|
|
12
|
+
],
|
|
13
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
push:
|
|
6
|
+
branches:
|
|
7
|
+
- main
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
fast:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
steps:
|
|
13
|
+
- uses: actions/checkout@v4
|
|
14
|
+
- uses: actions/setup-node@v4
|
|
15
|
+
with:
|
|
16
|
+
node-version: 20
|
|
17
|
+
- uses: dtolnay/rust-toolchain@nightly
|
|
18
|
+
with:
|
|
19
|
+
components: rustfmt,clippy,rust-src
|
|
20
|
+
- uses: extractions/setup-just@v2
|
|
21
|
+
- uses: pnpm/action-setup@v4
|
|
22
|
+
with:
|
|
23
|
+
version: 9.15.9
|
|
24
|
+
- uses: taiki-e/install-action@v2
|
|
25
|
+
with:
|
|
26
|
+
tool: cargo-nextest,cargo-udeps,cargo-deny,cargo-audit
|
|
27
|
+
- run: pnpm install --frozen-lockfile
|
|
28
|
+
- run: just lint
|
|
29
|
+
- run: just typecheck
|
|
30
|
+
|
|
31
|
+
test:
|
|
32
|
+
runs-on: ubuntu-latest
|
|
33
|
+
steps:
|
|
34
|
+
- uses: actions/checkout@v4
|
|
35
|
+
- uses: actions/setup-node@v4
|
|
36
|
+
with:
|
|
37
|
+
node-version: 20
|
|
38
|
+
- uses: dtolnay/rust-toolchain@stable
|
|
39
|
+
- uses: extractions/setup-just@v2
|
|
40
|
+
- uses: pnpm/action-setup@v4
|
|
41
|
+
with:
|
|
42
|
+
version: 9.15.9
|
|
43
|
+
- uses: taiki-e/install-action@v2
|
|
44
|
+
with:
|
|
45
|
+
tool: cargo-nextest
|
|
46
|
+
- run: pnpm install --frozen-lockfile
|
|
47
|
+
- run: just test
|
|
48
|
+
|
|
49
|
+
ux:
|
|
50
|
+
runs-on: ubuntu-latest
|
|
51
|
+
steps:
|
|
52
|
+
- uses: actions/checkout@v4
|
|
53
|
+
- uses: actions/setup-node@v4
|
|
54
|
+
with:
|
|
55
|
+
node-version: 20
|
|
56
|
+
- uses: extractions/setup-just@v2
|
|
57
|
+
- uses: pnpm/action-setup@v4
|
|
58
|
+
with:
|
|
59
|
+
version: 9.15.9
|
|
60
|
+
- run: pnpm install --frozen-lockfile
|
|
61
|
+
- run: pnpm exec playwright install --with-deps chromium
|
|
62
|
+
- run: just ux
|
|
63
|
+
|
|
64
|
+
supply-chain:
|
|
65
|
+
runs-on: ubuntu-latest
|
|
66
|
+
steps:
|
|
67
|
+
- uses: actions/checkout@v4
|
|
68
|
+
with:
|
|
69
|
+
fetch-depth: 0
|
|
70
|
+
- uses: actions/setup-node@v4
|
|
71
|
+
with:
|
|
72
|
+
node-version: 20
|
|
73
|
+
- uses: actions/setup-go@v5
|
|
74
|
+
with:
|
|
75
|
+
go-version: "1.24"
|
|
76
|
+
- uses: dtolnay/rust-toolchain@stable
|
|
77
|
+
- uses: pnpm/action-setup@v4
|
|
78
|
+
with:
|
|
79
|
+
version: 9.15.9
|
|
80
|
+
- uses: taiki-e/install-action@v2
|
|
81
|
+
with:
|
|
82
|
+
tool: cargo-deny,cargo-audit
|
|
83
|
+
- run: pnpm install --frozen-lockfile
|
|
84
|
+
- run: go install github.com/google/osv-scanner/v2/cmd/osv-scanner@v2.3.5
|
|
85
|
+
- uses: gitleaks/gitleaks-action@v2
|
|
86
|
+
env:
|
|
87
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
88
|
+
GITLEAKS_CONFIG: .gitleaks.toml
|
|
89
|
+
- run: $(go env GOPATH)/bin/osv-scanner scan source -r .
|
|
90
|
+
- run: pnpm audit --audit-level=high
|
|
91
|
+
- run: (cd apps/axum && cargo deny check)
|
|
92
|
+
- run: (cd apps/axum && cargo audit)
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"endOfLine": "lf",
|
|
3
|
+
"semi": false,
|
|
4
|
+
"singleQuote": false,
|
|
5
|
+
"tabWidth": 2,
|
|
6
|
+
"trailingComma": "es5",
|
|
7
|
+
"printWidth": 80,
|
|
8
|
+
"plugins": ["prettier-plugin-tailwindcss"],
|
|
9
|
+
"tailwindStylesheet": "packages/ui/src/styles/globals.css",
|
|
10
|
+
"tailwindFunctions": ["cn", "cva"]
|
|
11
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Project Context
|
|
2
|
+
|
|
3
|
+
This file is a short table of contents for the template knowledge base.
|
|
4
|
+
|
|
5
|
+
## Architecture
|
|
6
|
+
|
|
7
|
+
System structure and enforced dependency layers: [ARCHITECTURE.md](ARCHITECTURE.md)
|
|
8
|
+
|
|
9
|
+
## Design
|
|
10
|
+
|
|
11
|
+
Design notes and core beliefs: [docs/DESIGN.md](docs/DESIGN.md), [docs/design-docs/index.md](docs/design-docs/index.md)
|
|
12
|
+
|
|
13
|
+
## Frontend
|
|
14
|
+
|
|
15
|
+
Frontend conventions, UI package structure, and shared component rules: [docs/FRONTEND.md](docs/FRONTEND.md)
|
|
16
|
+
|
|
17
|
+
## Product
|
|
18
|
+
|
|
19
|
+
Starter goals and onboarding expectations: [docs/PRODUCT_SENSE.md](docs/PRODUCT_SENSE.md), [docs/product-specs/index.md](docs/product-specs/index.md)
|
|
20
|
+
|
|
21
|
+
## Plans
|
|
22
|
+
|
|
23
|
+
Execution plans and tech debt tracking: [docs/PLANS.md](docs/PLANS.md), [docs/exec-plans/tech-debt-tracker.md](docs/exec-plans/tech-debt-tracker.md)
|
|
24
|
+
|
|
25
|
+
## Reliability
|
|
26
|
+
|
|
27
|
+
Build, test, CI, and operational expectations: [docs/RELIABILITY.md](docs/RELIABILITY.md)
|
|
28
|
+
|
|
29
|
+
## Quality And Security
|
|
30
|
+
|
|
31
|
+
Quality rubric and security posture: [docs/QUALITY_SCORE.md](docs/QUALITY_SCORE.md), [docs/SECURITY.md](docs/SECURITY.md)
|
|
32
|
+
|
|
33
|
+
## References And Generated Artifacts
|
|
34
|
+
|
|
35
|
+
Reference material and generated snapshots: [docs/references/design-system-reference-llms.txt](docs/references/design-system-reference-llms.txt), [docs/generated/db-schema.md](docs/generated/db-schema.md)
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Architecture
|
|
2
|
+
|
|
3
|
+
## Repository Shape
|
|
4
|
+
|
|
5
|
+
- `apps/web`: the main Next.js application
|
|
6
|
+
- `apps/axum`: the Rust backend service
|
|
7
|
+
- `packages/ui`: the shared UI package used by the app
|
|
8
|
+
- `packages/eslint-config`: shared lint config
|
|
9
|
+
- `packages/typescript-config`: shared TypeScript config
|
|
10
|
+
|
|
11
|
+
## Web App Layers
|
|
12
|
+
|
|
13
|
+
`apps/web` uses `dependency-cruiser` to enforce:
|
|
14
|
+
|
|
15
|
+
- `app`
|
|
16
|
+
- `components`
|
|
17
|
+
- `hooks`
|
|
18
|
+
- `lib`
|
|
19
|
+
|
|
20
|
+
The important constraints are:
|
|
21
|
+
|
|
22
|
+
- `components` must not import `app`
|
|
23
|
+
- `hooks` may only import `lib`
|
|
24
|
+
- `lib` stays leaf-like
|
|
25
|
+
|
|
26
|
+
## Shared UI Domain Stack
|
|
27
|
+
|
|
28
|
+
`packages/ui` follows the business-domain stack:
|
|
29
|
+
|
|
30
|
+
- `Types`
|
|
31
|
+
- `Config`
|
|
32
|
+
- `Repo`
|
|
33
|
+
- `Service`
|
|
34
|
+
- `Runtime`
|
|
35
|
+
- `UI`
|
|
36
|
+
|
|
37
|
+
Cross-cutting concerns must enter through:
|
|
38
|
+
|
|
39
|
+
- `src/providers`
|
|
40
|
+
|
|
41
|
+
Provider-only support code lives in:
|
|
42
|
+
|
|
43
|
+
- `src/utils`
|
|
44
|
+
|
|
45
|
+
The stack is mechanically enforced by `packages/ui/dependency-cruiser.cjs`.
|
|
46
|
+
|
|
47
|
+
## Rust Service Layers
|
|
48
|
+
|
|
49
|
+
The Rust service uses a directional backend split:
|
|
50
|
+
|
|
51
|
+
- `api`
|
|
52
|
+
- `core`
|
|
53
|
+
- `domain`
|
|
54
|
+
|
|
55
|
+
Lower layers must not import higher ones.
|
|
56
|
+
`src/main.rs` stays focused on startup and bootstrapping.
|
|
57
|
+
|
|
58
|
+
The Rust layer check lives in `scripts/check-rust-layers.mjs`.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Next.js + Axum Monorepo Template
|
|
2
|
+
|
|
3
|
+
This template ships a README-aligned harness for `apps/web` and `apps/axum`.
|
|
4
|
+
|
|
5
|
+
## Harness Commands
|
|
6
|
+
|
|
7
|
+
Run all top-level checks from the template root:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
just install
|
|
11
|
+
just lint
|
|
12
|
+
just typecheck
|
|
13
|
+
just test
|
|
14
|
+
just ux
|
|
15
|
+
just supply-chain
|
|
16
|
+
just ci
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
`packages/ui` is still generated and updated through `shadcn` commands, but its internal layer boundaries are checked as part of the harness.
|
|
20
|
+
|
|
21
|
+
## What Each Lane Covers
|
|
22
|
+
|
|
23
|
+
- `just lint`: Biome, dependency-cruiser, and knip for `apps/web`; dependency-cruiser layer checks for `packages/ui`; a custom Rust layer boundary check plus rustfmt, clippy, and cargo-udeps for `apps/axum`
|
|
24
|
+
- `just typecheck`: `tsc --noEmit` for `apps/web` and `cargo check` for `apps/axum`
|
|
25
|
+
- `just test`: Vitest smoke coverage for `apps/web` and cargo-nextest coverage for `apps/axum`
|
|
26
|
+
- `just ux`: Playwright, axe, and Lighthouse against the running Next.js app
|
|
27
|
+
- `just supply-chain`: gitleaks, osv-scanner, `pnpm audit`, `cargo deny`, and `cargo audit`
|
|
28
|
+
|
|
29
|
+
## Adding Components
|
|
30
|
+
|
|
31
|
+
To add components to your app, run the following command at the root of your `web` app:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
pnpm dlx shadcn@latest add button -c apps/web
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
This places generated UI components in `packages/ui/src/ui`.
|
|
38
|
+
|
|
39
|
+
## Using Components
|
|
40
|
+
|
|
41
|
+
Import shared components from the `ui` package.
|
|
42
|
+
|
|
43
|
+
```tsx
|
|
44
|
+
import { Button } from "@workspace/ui/ui/button"
|
|
45
|
+
```
|