@vyuhlabs/dxkit 2.4.8 → 2.5.1
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/CHANGELOG.md +312 -0
- package/README.md +360 -439
- package/dist/analyzers/security/aggregator.d.ts.map +1 -1
- package/dist/analyzers/security/aggregator.js +4 -46
- package/dist/analyzers/security/aggregator.js.map +1 -1
- package/dist/analyzers/tools/fingerprint.d.ts +91 -26
- package/dist/analyzers/tools/fingerprint.d.ts.map +1 -1
- package/dist/analyzers/tools/fingerprint.js +111 -22
- package/dist/analyzers/tools/fingerprint.js.map +1 -1
- package/dist/analyzers/tools/generic.d.ts.map +1 -1
- package/dist/analyzers/tools/generic.js +6 -1
- package/dist/analyzers/tools/generic.js.map +1 -1
- package/dist/analyzers/tools/gitleaks.d.ts +24 -1
- package/dist/analyzers/tools/gitleaks.d.ts.map +1 -1
- package/dist/analyzers/tools/gitleaks.js +20 -11
- package/dist/analyzers/tools/gitleaks.js.map +1 -1
- package/dist/analyzers/tools/graphify.d.ts.map +1 -1
- package/dist/analyzers/tools/graphify.js +9 -5
- package/dist/analyzers/tools/graphify.js.map +1 -1
- package/dist/analyzers/tools/tool-registry.d.ts +19 -1
- package/dist/analyzers/tools/tool-registry.d.ts.map +1 -1
- package/dist/analyzers/tools/tool-registry.js +25 -0
- package/dist/analyzers/tools/tool-registry.js.map +1 -1
- package/dist/analyzers/types.d.ts +6 -4
- package/dist/analyzers/types.d.ts.map +1 -1
- package/dist/baseline/baseline-file.d.ts +104 -0
- package/dist/baseline/baseline-file.d.ts.map +1 -0
- package/dist/baseline/baseline-file.js +110 -0
- package/dist/baseline/baseline-file.js.map +1 -0
- package/dist/baseline/check-renderers.d.ts +108 -0
- package/dist/baseline/check-renderers.d.ts.map +1 -0
- package/dist/baseline/check-renderers.js +379 -0
- package/dist/baseline/check-renderers.js.map +1 -0
- package/dist/baseline/check.d.ts +127 -0
- package/dist/baseline/check.d.ts.map +1 -0
- package/dist/baseline/check.js +462 -0
- package/dist/baseline/check.js.map +1 -0
- package/dist/baseline/content-hash.d.ts +83 -0
- package/dist/baseline/content-hash.d.ts.map +1 -0
- package/dist/baseline/content-hash.js +131 -0
- package/dist/baseline/content-hash.js.map +1 -0
- package/dist/baseline/create.d.ts +96 -0
- package/dist/baseline/create.d.ts.map +1 -0
- package/dist/baseline/create.js +339 -0
- package/dist/baseline/create.js.map +1 -0
- package/dist/baseline/entry-to-located.d.ts +35 -0
- package/dist/baseline/entry-to-located.d.ts.map +1 -0
- package/dist/baseline/entry-to-located.js +72 -0
- package/dist/baseline/entry-to-located.js.map +1 -0
- package/dist/baseline/finding-identity.d.ts +47 -0
- package/dist/baseline/finding-identity.d.ts.map +1 -0
- package/dist/baseline/finding-identity.js +292 -0
- package/dist/baseline/finding-identity.js.map +1 -0
- package/dist/baseline/git-aware-match.d.ts +146 -0
- package/dist/baseline/git-aware-match.d.ts.map +1 -0
- package/dist/baseline/git-aware-match.js +439 -0
- package/dist/baseline/git-aware-match.js.map +1 -0
- package/dist/baseline/policy.d.ts +171 -0
- package/dist/baseline/policy.d.ts.map +1 -0
- package/dist/baseline/policy.js +206 -0
- package/dist/baseline/policy.js.map +1 -0
- package/dist/baseline/producers/health.d.ts +30 -0
- package/dist/baseline/producers/health.d.ts.map +1 -0
- package/dist/baseline/producers/health.js +42 -0
- package/dist/baseline/producers/health.js.map +1 -0
- package/dist/baseline/producers/index.d.ts +164 -0
- package/dist/baseline/producers/index.d.ts.map +1 -0
- package/dist/baseline/producers/index.js +200 -0
- package/dist/baseline/producers/index.js.map +1 -0
- package/dist/baseline/producers/licenses.d.ts +23 -0
- package/dist/baseline/producers/licenses.d.ts.map +1 -0
- package/dist/baseline/producers/licenses.js +46 -0
- package/dist/baseline/producers/licenses.js.map +1 -0
- package/dist/baseline/producers/quality.d.ts +39 -0
- package/dist/baseline/producers/quality.d.ts.map +1 -0
- package/dist/baseline/producers/quality.js +84 -0
- package/dist/baseline/producers/quality.js.map +1 -0
- package/dist/baseline/producers/secret-hmac.d.ts +45 -0
- package/dist/baseline/producers/secret-hmac.d.ts.map +1 -0
- package/dist/baseline/producers/secret-hmac.js +70 -0
- package/dist/baseline/producers/secret-hmac.js.map +1 -0
- package/dist/baseline/producers/security.d.ts +59 -0
- package/dist/baseline/producers/security.d.ts.map +1 -0
- package/dist/baseline/producers/security.js +135 -0
- package/dist/baseline/producers/security.js.map +1 -0
- package/dist/baseline/producers/tests.d.ts +36 -0
- package/dist/baseline/producers/tests.d.ts.map +1 -0
- package/dist/baseline/producers/tests.js +69 -0
- package/dist/baseline/producers/tests.js.map +1 -0
- package/dist/baseline/salt.d.ts +45 -0
- package/dist/baseline/salt.d.ts.map +1 -0
- package/dist/baseline/salt.js +113 -0
- package/dist/baseline/salt.js.map +1 -0
- package/dist/baseline/show.d.ts +79 -0
- package/dist/baseline/show.d.ts.map +1 -0
- package/dist/baseline/show.js +233 -0
- package/dist/baseline/show.js.map +1 -0
- package/dist/baseline/types.d.ts +482 -0
- package/dist/baseline/types.d.ts.map +1 -0
- package/dist/baseline/types.js +53 -0
- package/dist/baseline/types.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +398 -82
- package/dist/cli.js.map +1 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +0 -4
- package/dist/constants.js.map +1 -1
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +39 -35
- package/dist/doctor.js.map +1 -1
- package/dist/fail-on.d.ts +84 -0
- package/dist/fail-on.d.ts.map +1 -0
- package/dist/fail-on.js +128 -0
- package/dist/fail-on.js.map +1 -0
- package/dist/generator.d.ts +1 -1
- package/dist/generator.d.ts.map +1 -1
- package/dist/generator.js +81 -274
- package/dist/generator.js.map +1 -1
- package/dist/hooks-cli.d.ts +20 -0
- package/dist/hooks-cli.d.ts.map +1 -0
- package/dist/hooks-cli.js +145 -0
- package/dist/hooks-cli.js.map +1 -0
- package/dist/languages/csharp.d.ts.map +1 -1
- package/dist/languages/csharp.js +4 -9
- package/dist/languages/csharp.js.map +1 -1
- package/dist/languages/go.d.ts.map +1 -1
- package/dist/languages/go.js +3 -14
- package/dist/languages/go.js.map +1 -1
- package/dist/languages/index.d.ts +19 -1
- package/dist/languages/index.d.ts.map +1 -1
- package/dist/languages/index.js +32 -0
- package/dist/languages/index.js.map +1 -1
- package/dist/languages/java.d.ts.map +1 -1
- package/dist/languages/java.js +4 -6
- package/dist/languages/java.js.map +1 -1
- package/dist/languages/kotlin.d.ts.map +1 -1
- package/dist/languages/kotlin.js +9 -11
- package/dist/languages/kotlin.js.map +1 -1
- package/dist/languages/python.d.ts.map +1 -1
- package/dist/languages/python.js +4 -15
- package/dist/languages/python.js.map +1 -1
- package/dist/languages/ruby.d.ts.map +1 -1
- package/dist/languages/ruby.js +4 -6
- package/dist/languages/ruby.js.map +1 -1
- package/dist/languages/rust.d.ts.map +1 -1
- package/dist/languages/rust.js +4 -4
- package/dist/languages/rust.js.map +1 -1
- package/dist/languages/types.d.ts +29 -28
- package/dist/languages/types.d.ts.map +1 -1
- package/dist/languages/typescript.d.ts.map +1 -1
- package/dist/languages/typescript.js +31 -4
- package/dist/languages/typescript.js.map +1 -1
- package/dist/lib.d.ts +2 -3
- package/dist/lib.d.ts.map +1 -1
- package/dist/lib.js +3 -6
- package/dist/lib.js.map +1 -1
- package/dist/prompts.d.ts.map +1 -1
- package/dist/prompts.js +0 -10
- package/dist/prompts.js.map +1 -1
- package/dist/report-schema.d.ts +42 -0
- package/dist/report-schema.d.ts.map +1 -0
- package/dist/report-schema.js +54 -0
- package/dist/report-schema.js.map +1 -0
- package/dist/ship-installers.d.ts +112 -0
- package/dist/ship-installers.d.ts.map +1 -0
- package/dist/ship-installers.js +530 -0
- package/dist/ship-installers.js.map +1 -0
- package/dist/tools-cli.d.ts.map +1 -1
- package/dist/tools-cli.js +45 -9
- package/dist/tools-cli.js.map +1 -1
- package/dist/types.d.ts +0 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/update.d.ts.map +1 -1
- package/dist/update.js +0 -4
- package/dist/update.js.map +1 -1
- package/package.json +17 -11
- package/templates/.claude/skills/dxkit-action/SKILL.md +150 -0
- package/templates/.claude/skills/dxkit-config/SKILL.md +124 -0
- package/templates/.claude/skills/dxkit-hooks/SKILL.md +109 -0
- package/templates/.claude/skills/dxkit-init/SKILL.md +93 -0
- package/templates/.claude/skills/dxkit-learn/SKILL.md +84 -0
- package/templates/.claude/skills/dxkit-reports/SKILL.md +111 -0
- package/templates/.devcontainer/devcontainer.json +55 -0
- package/templates/.devcontainer/install-agent-clis.sh +42 -0
- package/templates/.devcontainer/post-create.sh +81 -0
- package/templates/.githooks/pre-commit +55 -0
- package/templates/.githooks/pre-push +63 -0
- package/templates/.github/workflows/dxkit-baseline-refresh.yml +78 -0
- package/templates/.github/workflows/dxkit-guardrails.yml +98 -0
- package/templates/AGENTS.md.template +137 -0
- package/templates/CLAUDE.md.template +16 -245
- package/dist/codebase-scanner.d.ts +0 -36
- package/dist/codebase-scanner.d.ts.map +0 -1
- package/dist/codebase-scanner.js +0 -688
- package/dist/codebase-scanner.js.map +0 -1
- package/dist/project-yaml.d.ts +0 -13
- package/dist/project-yaml.d.ts.map +0 -1
- package/dist/project-yaml.js +0 -188
- package/dist/project-yaml.js.map +0 -1
- package/templates/.ai/README.md +0 -117
- package/templates/.ai/prompts/execution-prompt.md +0 -9
- package/templates/.ai/prompts/planning-prompt.md +0 -18
- package/templates/.ai/prompts/session-end-template.md +0 -182
- package/templates/.ai/prompts/session-end.md +0 -132
- package/templates/.ai/prompts/session-start.md +0 -109
- package/templates/.ai/prompts/step-by-step.md +0 -113
- package/templates/.ai/sessions/.gitkeep +0 -0
- package/templates/.claude/agents/doc-writer.md +0 -107
- package/templates/.claude/agents/knowledge-bot.md +0 -64
- package/templates/.claude/agents/onboarding.md +0 -61
- package/templates/.claude/agents/quality-reviewer.md +0 -85
- package/templates/.claude/agents-available/code-reviewer.md +0 -29
- package/templates/.claude/agents-available/codebase-explorer.md +0 -100
- package/templates/.claude/agents-available/dashboard-builder.md +0 -433
- package/templates/.claude/agents-available/debugger.md +0 -29
- package/templates/.claude/agents-available/dependency-mapper.md +0 -80
- package/templates/.claude/agents-available/dev-report.md +0 -108
- package/templates/.claude/agents-available/doc-writer.md +0 -107
- package/templates/.claude/agents-available/feature-builder.md +0 -163
- package/templates/.claude/agents-available/feature-planner.md +0 -185
- package/templates/.claude/agents-available/health-auditor.md +0 -95
- package/templates/.claude/agents-available/hooks-configurator.md +0 -211
- package/templates/.claude/agents-available/knowledge-bot.md +0 -62
- package/templates/.claude/agents-available/plan-executor.md +0 -133
- package/templates/.claude/agents-available/strategic-planner.md +0 -141
- package/templates/.claude/agents-available/test-gap-finder.md +0 -67
- package/templates/.claude/agents-available/test-writer.md +0 -34
- package/templates/.claude/agents-available/vulnerability-scanner.md +0 -173
- package/templates/.claude/commands/ask.md +0 -7
- package/templates/.claude/commands/build-feature.md +0 -26
- package/templates/.claude/commands/build.md.template +0 -30
- package/templates/.claude/commands/check.md.template +0 -43
- package/templates/.claude/commands/dashboard.md +0 -28
- package/templates/.claude/commands/deps.md +0 -15
- package/templates/.claude/commands/dev-report.md +0 -50
- package/templates/.claude/commands/docs.md +0 -21
- package/templates/.claude/commands/doctor.md +0 -21
- package/templates/.claude/commands/enable-agent.md +0 -12
- package/templates/.claude/commands/execute-plan.md +0 -25
- package/templates/.claude/commands/explore-codebase.md +0 -12
- package/templates/.claude/commands/export-pdf.md +0 -30
- package/templates/.claude/commands/feature.md +0 -25
- package/templates/.claude/commands/fix-issue.md +0 -12
- package/templates/.claude/commands/fix.md.template +0 -32
- package/templates/.claude/commands/health.md +0 -58
- package/templates/.claude/commands/help.md +0 -36
- package/templates/.claude/commands/learn.md +0 -48
- package/templates/.claude/commands/onboarding.md +0 -21
- package/templates/.claude/commands/plan.md +0 -20
- package/templates/.claude/commands/quality.md.template +0 -65
- package/templates/.claude/commands/session-end.md +0 -40
- package/templates/.claude/commands/session-start.md +0 -30
- package/templates/.claude/commands/setup-hooks.md +0 -18
- package/templates/.claude/commands/setup-pr-review.md +0 -72
- package/templates/.claude/commands/stealth-mode.md +0 -17
- package/templates/.claude/commands/test-gaps.md +0 -49
- package/templates/.claude/commands/test.md.template +0 -40
- package/templates/.claude/commands/vulnerabilities.md +0 -49
- package/templates/.claude/skills/build/SKILL.md.template +0 -98
- package/templates/.claude/skills/deploy/SKILL.md.template +0 -131
- package/templates/.claude/skills/deploy/references/gotchas.md +0 -5
- package/templates/.claude/skills/doctor/SKILL.md +0 -54
- package/templates/.claude/skills/gcloud/SKILL.md +0 -66
- package/templates/.claude/skills/gcloud/references/gotchas.md +0 -5
- package/templates/.claude/skills/learned/SKILL.md +0 -55
- package/templates/.claude/skills/learned/references/conventions.md +0 -11
- package/templates/.claude/skills/learned/references/deny-recommendations.md +0 -18
- package/templates/.claude/skills/learned/references/gotchas.md +0 -11
- package/templates/.claude/skills/pulumi/SKILL.md +0 -73
- package/templates/.claude/skills/quality/SKILL.md.template +0 -108
- package/templates/.claude/skills/quality/references/gotchas.md +0 -5
- package/templates/.claude/skills/review/SKILL.md.template +0 -73
- package/templates/.claude/skills/scaffold/SKILL.md.template +0 -123
- package/templates/.claude/skills/secrets/SKILL.md +0 -52
- package/templates/.claude/skills/session/SKILL.md +0 -43
- package/templates/.claude/skills/test/SKILL.md.template +0 -122
- package/templates/.claude/skills/test/references/gotchas.md +0 -5
- package/templates/.devcontainer/Dockerfile.dev.template +0 -89
- package/templates/.devcontainer/devcontainer.json.template +0 -184
- package/templates/.devcontainer/docker-compose.yml.template +0 -105
- package/templates/.devcontainer/init-scripts/01-init.sql.template +0 -12
- package/templates/.devcontainer/post-create.sh.template +0 -298
- package/templates/.github/workflows/ci.yml.template +0 -399
- package/templates/.github/workflows/quality.yml.template +0 -376
- package/templates/.pre-commit-config.yaml.template +0 -106
- package/templates/.project/config/edit_config.py +0 -275
- package/templates/.project/config/project_config.py +0 -894
- package/templates/.project/scripts/codegen/generate-all.sh +0 -20
- package/templates/.project/scripts/codegen/validate-all.sh +0 -17
- package/templates/.project/scripts/docs/generate-all.sh +0 -30
- package/templates/.project/scripts/docs/serve.sh +0 -20
- package/templates/.project/scripts/quality/fix-all.sh +0 -138
- package/templates/.project/scripts/quality/lint-go.sh +0 -34
- package/templates/.project/scripts/quality/lint-python.sh +0 -54
- package/templates/.project/scripts/quality/run-all.sh +0 -497
- package/templates/.project/scripts/session/commit.sh +0 -70
- package/templates/.project/scripts/session/create-pr.sh +0 -165
- package/templates/.project/scripts/session/end.sh +0 -207
- package/templates/.project/scripts/session/start.sh +0 -233
- package/templates/.project/scripts/setup/doctor.sh +0 -404
- package/templates/.project/scripts/setup/interactive-setup.sh +0 -585
- package/templates/.project/scripts/sync/sync-template.sh +0 -328
- package/templates/.project/scripts/test/run-all.sh +0 -179
- package/templates/.project/scripts/test/run-quick.sh +0 -25
- package/templates/Makefile +0 -514
- package/templates/config/versions.yaml +0 -57
- package/templates/configs/go/.golangci.yml.template +0 -172
- package/templates/configs/go/go.mod.template +0 -15
- package/templates/configs/java/README.md +0 -6
- package/templates/configs/kotlin/README.md +0 -6
- package/templates/configs/node/package.json.template +0 -67
- package/templates/configs/node/tsconfig.json.template +0 -53
- package/templates/configs/python/pyproject.toml.template +0 -92
- package/templates/configs/python/pytest.ini.template +0 -64
- package/templates/configs/python/ruff.toml.template +0 -79
- package/templates/configs/ruby/README.md +0 -6
- package/templates/configs/rust/Cargo.toml.template +0 -51
- package/templates/configs/shared/.editorconfig +0 -67
- package/templates/scripts/validate-templates.sh +0 -449
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Capture a learning from this conversation (gotcha, convention, or thing to avoid)
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Review this conversation and capture any learnings. If the user provided specific input, use that:
|
|
6
|
-
|
|
7
|
-
$ARGUMENTS
|
|
8
|
-
|
|
9
|
-
## What to Capture
|
|
10
|
-
|
|
11
|
-
Look for:
|
|
12
|
-
1. **Gotchas** — something surprising, broke unexpectedly, or took time to debug
|
|
13
|
-
2. **Conventions** — a pattern or approach that worked well and should be repeated
|
|
14
|
-
3. **Deny recommendations** — a dangerous command that should be avoided
|
|
15
|
-
|
|
16
|
-
## Where to Write
|
|
17
|
-
|
|
18
|
-
First read the existing files to avoid duplicates. Then append (never overwrite) to the appropriate file:
|
|
19
|
-
|
|
20
|
-
- **Gotchas** → `.claude/skills/learned/references/gotchas.md`
|
|
21
|
-
```
|
|
22
|
-
## YYYY-MM-DD - Category / Title
|
|
23
|
-
**Problem:** What went wrong
|
|
24
|
-
**Resolution:** How it was fixed
|
|
25
|
-
**Prevention:** How to avoid it next time
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
- **Conventions** → `.claude/skills/learned/references/conventions.md`
|
|
29
|
-
```
|
|
30
|
-
## Category - Convention Name
|
|
31
|
-
**Pattern:** What to do
|
|
32
|
-
**Rationale:** Why this works
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
- **Deny recommendations** → `.claude/skills/learned/references/deny-recommendations.md`
|
|
36
|
-
```
|
|
37
|
-
## Command / Pattern to Avoid
|
|
38
|
-
**Risk:** What could go wrong
|
|
39
|
-
**Alternative:** Safer approach
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
## Rules
|
|
43
|
-
|
|
44
|
-
- Only capture things that are **non-obvious** and useful for future sessions
|
|
45
|
-
- Don't repeat what's already in the files
|
|
46
|
-
- Be concise — future sessions will read these
|
|
47
|
-
- **NEVER include secrets, tokens, or credentials**
|
|
48
|
-
- Tell the user what you captured and where
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Start interactive onboarding for a new developer
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
The **onboarding** agent is active and will help you get started with this project.
|
|
6
|
-
|
|
7
|
-
It can:
|
|
8
|
-
- Give you a project overview and architecture walkthrough
|
|
9
|
-
- Walk you through local setup step by step
|
|
10
|
-
- Explain how any part of the codebase works
|
|
11
|
-
- Point out gotchas and conventions before you hit them
|
|
12
|
-
- Suggest what to read first based on what area you'll work on
|
|
13
|
-
|
|
14
|
-
Just start asking questions — for example:
|
|
15
|
-
- "What does this project do?"
|
|
16
|
-
- "How do I set up my local environment?"
|
|
17
|
-
- "Where are the API endpoints defined?"
|
|
18
|
-
- "What should I read first?"
|
|
19
|
-
- "How does authentication work?"
|
|
20
|
-
|
|
21
|
-
$ARGUMENTS
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Generate improvement plans with KPIs from reports (or list existing plans)
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Delegate to the **strategic-planner** agent. It reads all reports in `.dxkit/reports/`, proposes measurable KPIs, and generates actionable plans in `.ai/plans/`.
|
|
6
|
-
|
|
7
|
-
If reports don't exist yet, it will tell you which commands to run first (`/health`, `/vulnerabilities`, `/test-gaps`, etc.).
|
|
8
|
-
|
|
9
|
-
Examples:
|
|
10
|
-
- `/plan` — Analyze all reports and generate full improvement roadmap
|
|
11
|
-
- `/plan security` — Generate a security-focused plan only
|
|
12
|
-
- `/plan test-coverage` — Generate a test coverage plan only
|
|
13
|
-
|
|
14
|
-
**IMPORTANT: End the report with this exact footer:**
|
|
15
|
-
```
|
|
16
|
-
---
|
|
17
|
-
*Generated by [VyuhLabs DXKit](https://www.npmjs.com/package/@vyuhlabs/dxkit)*
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
$ARGUMENTS
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Run code quality analysis with slop detection
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
## Step 1: Check for Existing Report
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
ls .dxkit/reports/quality-review-*.md 2>/dev/null | tail -1
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
**If a report exists**: Read it. The slop score, duplication %, and metrics are deterministic. Skip to Step 3.
|
|
12
|
-
|
|
13
|
-
**If no report exists**: Proceed to Step 2.
|
|
14
|
-
|
|
15
|
-
## Step 2: Generate Deterministic Report
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
npx vyuh-dxkit quality . --json 2>/dev/null
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
**If the command succeeds**: Read the saved report. Proceed to Step 3.
|
|
22
|
-
|
|
23
|
-
**If the command fails**: Run linters and checks manually:
|
|
24
|
-
{{#IF_NODE}}
|
|
25
|
-
1. `npx eslint . --format json` — Lint
|
|
26
|
-
2. `npx tsc --noEmit` — Type check
|
|
27
|
-
{{/IF_NODE}}
|
|
28
|
-
{{#IF_PYTHON}}
|
|
29
|
-
1. `ruff check .` — Lint
|
|
30
|
-
2. `ruff format --check .` — Format check
|
|
31
|
-
{{/IF_PYTHON}}
|
|
32
|
-
{{#IF_GO}}
|
|
33
|
-
1. `golangci-lint run ./...` — Lint
|
|
34
|
-
2. `go vet ./...` — Vet
|
|
35
|
-
{{/IF_GO}}
|
|
36
|
-
{{#IF_CSHARP}}
|
|
37
|
-
1. `dotnet format --verify-no-changes` — Format check
|
|
38
|
-
{{/IF_CSHARP}}
|
|
39
|
-
{{#IF_RUST}}
|
|
40
|
-
1. `cargo fmt --check` — Format check
|
|
41
|
-
2. `cargo clippy -- -D warnings` — Lint
|
|
42
|
-
{{/IF_RUST}}
|
|
43
|
-
Then analyze code for duplication, dead code, TODO/FIXME density, comment ratio. Note: "Metrics are AI-estimated. Install `@vyuhlabs/dxkit` for deterministic quality analysis with jscpd + graphify."
|
|
44
|
-
|
|
45
|
-
## Step 3: Enrich with Narrative
|
|
46
|
-
|
|
47
|
-
Using the quality metrics, add:
|
|
48
|
-
|
|
49
|
-
- **Duplication hotspots** — which files/functions are copy-pasted, and how to extract shared code
|
|
50
|
-
- **God file remediation** — how to break up files with >50 functions (suggest module boundaries)
|
|
51
|
-
- **Dead code cleanup** — which orphan modules and dead imports to remove
|
|
52
|
-
- **Slop indicators** — if comment ratio >40% or TODO count is high, suggest cleanup priorities
|
|
53
|
-
- **Lint fix plan** — group lint errors by rule, suggest auto-fixable vs manual
|
|
54
|
-
|
|
55
|
-
**Do not change the slop score, duplication %, or metric counts from the deterministic report.**
|
|
56
|
-
|
|
57
|
-
Save to `.dxkit/reports/quality-review-YYYY-MM-DD.md`.
|
|
58
|
-
|
|
59
|
-
**IMPORTANT: End the report with this exact footer:**
|
|
60
|
-
```
|
|
61
|
-
---
|
|
62
|
-
*Generated by [VyuhLabs DXKit](https://www.npmjs.com/package/@vyuhlabs/dxkit)*
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
$ARGUMENTS
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: End session and create checkpoint with skill evolution
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Ending the current development session.
|
|
6
|
-
|
|
7
|
-
## Session Info
|
|
8
|
-
|
|
9
|
-
Determine the developer name from `git config user.name` and today's date. Create the session directory at `.ai/sessions/<developer>/<date>/` if it doesn't exist. Find the next session number by checking existing `session-*.md` files. Also check recent git commits and uncommitted changes.
|
|
10
|
-
|
|
11
|
-
## Create Checkpoint
|
|
12
|
-
|
|
13
|
-
Create a comprehensive checkpoint at `.ai/sessions/<developer>/<date>/session-<N>.md`. Include:
|
|
14
|
-
|
|
15
|
-
### Required Sections
|
|
16
|
-
- **Session Goal** — What we set out to do
|
|
17
|
-
- **Accomplished** — Specific items completed (not vague — include file paths, counts)
|
|
18
|
-
- **Files Created/Modified** — Every file with description
|
|
19
|
-
- **Key Decisions** — What we decided, why, alternatives considered
|
|
20
|
-
- **Implementation Details** — How things work, patterns used
|
|
21
|
-
- **Testing Status** — Tests added, coverage, passing status
|
|
22
|
-
- **Next Session** — Clear, actionable steps for next session
|
|
23
|
-
- **Context for AI** — Detailed context for the next session's agent
|
|
24
|
-
- **Blockers / Considerations** — Issues, tech debt, dependencies
|
|
25
|
-
|
|
26
|
-
## Skill Evolution
|
|
27
|
-
|
|
28
|
-
After creating the checkpoint, review this session for learnings:
|
|
29
|
-
|
|
30
|
-
1. **Gotchas** — Append to `.claude/skills/learned/references/gotchas.md`
|
|
31
|
-
Format: `## YYYY-MM-DD - Category / Title` + description + resolution
|
|
32
|
-
|
|
33
|
-
2. **Conventions** — Append to `.claude/skills/learned/references/conventions.md`
|
|
34
|
-
Format: `## Category - Convention Name` + description + rationale
|
|
35
|
-
|
|
36
|
-
3. **Deny recommendations** — If a dangerous command was nearly executed, append to `.claude/skills/learned/references/deny-recommendations.md`
|
|
37
|
-
|
|
38
|
-
4. **New skills** — If a distinct new domain emerged, create `.claude/skills/<name>/SKILL.md`
|
|
39
|
-
|
|
40
|
-
**NEVER include secret values, tokens, or credentials in checkpoints or skill files.**
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Start an AI-assisted development session
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Starting a new development session.
|
|
6
|
-
|
|
7
|
-
## Session Info
|
|
8
|
-
|
|
9
|
-
Determine the developer name from `git config user.name` and today's date. Check `.ai/sessions/` for previous checkpoints from this developer.
|
|
10
|
-
|
|
11
|
-
## Before Planning
|
|
12
|
-
|
|
13
|
-
Check Claude Code skills for relevant context:
|
|
14
|
-
- Read `.claude/skills/codebase/SKILL.md` if it exists (run `/explore-codebase` if missing)
|
|
15
|
-
- Read `.claude/skills/learned/references/gotchas.md` for known project gotchas
|
|
16
|
-
- Read `.claude/skills/learned/references/conventions.md` for team conventions
|
|
17
|
-
|
|
18
|
-
## Plan This Session
|
|
19
|
-
|
|
20
|
-
Before coding, let's plan:
|
|
21
|
-
|
|
22
|
-
1. What files will we need to create/modify?
|
|
23
|
-
2. What are the key components/functions?
|
|
24
|
-
3. What dependencies or external services do we need?
|
|
25
|
-
4. What tests should we write?
|
|
26
|
-
5. Can we complete this in one session?
|
|
27
|
-
6. Does this align with our architecture?
|
|
28
|
-
7. Are there relevant gotchas or conventions in `.claude/skills/` to be aware of?
|
|
29
|
-
|
|
30
|
-
Once we have a solid plan, I'll proceed step by step — explaining WHAT, WHY, and HOW before each change.
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Configure git hooks (quality, test, vulnerability) — consistent with DXKit reports
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Delegate to the **hooks-configurator** agent. It will:
|
|
6
|
-
|
|
7
|
-
1. Ask which checks to enable (quality, test, vulnerability)
|
|
8
|
-
2. Read your existing `/quality`, `/test`, and `/vulnerabilities` commands to ensure hooks run the **exact same tools** as your reports
|
|
9
|
-
3. Generate scoped hooks (staged files for commit, changed files for push, full suite for PR)
|
|
10
|
-
4. Optionally enable stealth mode (gitignore DXKit files, keep hooks committed)
|
|
11
|
-
|
|
12
|
-
**IMPORTANT: End the report with this exact footer:**
|
|
13
|
-
```
|
|
14
|
-
---
|
|
15
|
-
*Generated by [VyuhLabs DXKit](https://www.npmjs.com/package/@vyuhlabs/dxkit)*
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
$ARGUMENTS
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Set up automated PR review with Claude Code
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Set up a GitHub Action that automatically reviews pull requests using Claude Code.
|
|
6
|
-
|
|
7
|
-
## What to Create
|
|
8
|
-
|
|
9
|
-
Create `.github/workflows/pr-review.yml` with this content:
|
|
10
|
-
|
|
11
|
-
```yaml
|
|
12
|
-
name: PR Review
|
|
13
|
-
|
|
14
|
-
on:
|
|
15
|
-
pull_request:
|
|
16
|
-
types: [opened, synchronize, reopened]
|
|
17
|
-
|
|
18
|
-
permissions:
|
|
19
|
-
contents: read
|
|
20
|
-
pull-requests: write
|
|
21
|
-
|
|
22
|
-
jobs:
|
|
23
|
-
review:
|
|
24
|
-
runs-on: ubuntu-latest
|
|
25
|
-
steps:
|
|
26
|
-
- uses: actions/checkout@v4
|
|
27
|
-
with:
|
|
28
|
-
fetch-depth: 0
|
|
29
|
-
|
|
30
|
-
- name: Install Claude Code
|
|
31
|
-
run: npm install -g @anthropic-ai/claude-code
|
|
32
|
-
|
|
33
|
-
- name: Review PR
|
|
34
|
-
env:
|
|
35
|
-
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
|
|
36
|
-
run: |
|
|
37
|
-
# Get the diff
|
|
38
|
-
git diff origin/${{ github.base_ref }}...HEAD > /tmp/pr-diff.txt
|
|
39
|
-
|
|
40
|
-
# Run Claude Code in non-interactive mode
|
|
41
|
-
claude -p "Review this pull request diff for bugs, security issues, and code quality problems. Focus on:
|
|
42
|
-
1. Logic errors and edge cases
|
|
43
|
-
2. Security vulnerabilities (hardcoded secrets, injection, auth gaps)
|
|
44
|
-
3. Error handling gaps
|
|
45
|
-
4. Breaking changes
|
|
46
|
-
|
|
47
|
-
Be specific: reference file:line numbers. Rate each issue as critical/warning/suggestion.
|
|
48
|
-
Only flag real issues — not style (linters handle that).
|
|
49
|
-
|
|
50
|
-
The diff:
|
|
51
|
-
$(cat /tmp/pr-diff.txt)" > /tmp/review.md
|
|
52
|
-
|
|
53
|
-
- name: Post Review Comment
|
|
54
|
-
uses: actions/github-script@v7
|
|
55
|
-
with:
|
|
56
|
-
script: |
|
|
57
|
-
const fs = require('fs');
|
|
58
|
-
const review = fs.readFileSync('/tmp/review.md', 'utf8');
|
|
59
|
-
await github.rest.issues.createComment({
|
|
60
|
-
owner: context.repo.owner,
|
|
61
|
-
repo: context.repo.repo,
|
|
62
|
-
issue_number: context.issue.number,
|
|
63
|
-
body: `## 🤖 Claude Code Review\n\n${review}\n\n---\n*Automated review by Claude Code*`
|
|
64
|
-
});
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
## After Creating
|
|
68
|
-
|
|
69
|
-
Tell the user:
|
|
70
|
-
1. Add `ANTHROPIC_API_KEY` to the repo's GitHub Secrets (Settings → Secrets → Actions)
|
|
71
|
-
2. The workflow will run automatically on every PR
|
|
72
|
-
3. Reviews appear as PR comments
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Configure DXKit as local-only (gitignore all generated files) + install git hooks
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Delegate to the **hooks-configurator** agent with stealth mode enabled.
|
|
6
|
-
|
|
7
|
-
This will:
|
|
8
|
-
1. Add all DXKit files to `.gitignore` (`.claude/`, `.ai/`, `.dxkit/`, `CLAUDE.md`, `.vyuh-dxkit.json`)
|
|
9
|
-
2. Ask which hooks to enable (quality, test, vulnerability)
|
|
10
|
-
3. Generate `.githooks/` directory (committed — all devs get the hooks)
|
|
11
|
-
4. Install hooks with `git config core.hooksPath .githooks`
|
|
12
|
-
|
|
13
|
-
Result: DXKit AI features are local-only, but quality/test/security hooks run for everyone.
|
|
14
|
-
|
|
15
|
-
**Enable stealth mode: yes**
|
|
16
|
-
|
|
17
|
-
$ARGUMENTS
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Find critical code paths that lack test coverage
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
## Step 1: Check for Existing Report
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
ls .dxkit/reports/test-gaps-*.md 2>/dev/null | tail -1
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
**If a report exists**: Read it. The file counts, coverage %, and risk tiers are deterministic. Skip to Step 3.
|
|
12
|
-
|
|
13
|
-
**If no report exists**: Proceed to Step 2.
|
|
14
|
-
|
|
15
|
-
## Step 2: Generate Deterministic Report
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
npx vyuh-dxkit test-gaps . --json 2>/dev/null
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
**If the command succeeds**: Read the saved report. Proceed to Step 3.
|
|
22
|
-
|
|
23
|
-
**If the command fails**: Analyze manually — find test files, check if they have active assertions or are commented out, map source files to test files, identify critical untested code (auth, crypto, payments). Note: "Coverage is AI-estimated. Install `@vyuhlabs/dxkit` for deterministic gap analysis."
|
|
24
|
-
|
|
25
|
-
## Step 3: Enrich with Narrative
|
|
26
|
-
|
|
27
|
-
Using the gap analysis, add for each priority tier (CRITICAL/HIGH/MEDIUM/LOW):
|
|
28
|
-
|
|
29
|
-
- **Why this file is critical** — what breaks if this code has a bug (data loss, auth bypass, etc.)
|
|
30
|
-
- **What to test** — specific test scenarios and assertions
|
|
31
|
-
- **Effort estimate** — rough developer-days per file
|
|
32
|
-
- **Dependencies** — what test infrastructure is needed first (fixtures, mocks, test DB)
|
|
33
|
-
|
|
34
|
-
Add a **Test Infrastructure Setup** section if tests are at 0%:
|
|
35
|
-
- Which test framework to use
|
|
36
|
-
- How to configure coverage reporting
|
|
37
|
-
- First 5 test files to write (highest impact)
|
|
38
|
-
|
|
39
|
-
**Do not change coverage %, file counts, or risk classifications from the deterministic report.**
|
|
40
|
-
|
|
41
|
-
Save to `.dxkit/reports/test-gaps-YYYY-MM-DD.md`.
|
|
42
|
-
|
|
43
|
-
**IMPORTANT: End the report with this exact footer:**
|
|
44
|
-
```
|
|
45
|
-
---
|
|
46
|
-
*Generated by [VyuhLabs DXKit](https://www.npmjs.com/package/@vyuhlabs/dxkit)*
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
$ARGUMENTS
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Run tests with coverage reporting
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Run tests with coverage. Enforce minimum coverage threshold.
|
|
6
|
-
|
|
7
|
-
{{#IF_NODE}}
|
|
8
|
-
## Node / TypeScript ({{TEST_FRAMEWORK}})
|
|
9
|
-
Run: `{{TEST_COMMAND}}`
|
|
10
|
-
{{#ELSE}}
|
|
11
|
-
{{#IF_PYTHON}}
|
|
12
|
-
## Python
|
|
13
|
-
Run: `pytest --cov --cov-report=term-missing --cov-fail-under={{COVERAGE_THRESHOLD}}`
|
|
14
|
-
{{/IF_PYTHON}}
|
|
15
|
-
{{#IF_GO}}
|
|
16
|
-
## Go
|
|
17
|
-
Run: `go test -coverprofile=coverage.out -covermode=atomic ./...`
|
|
18
|
-
Then: `go tool cover -func=coverage.out`
|
|
19
|
-
Check that total coverage is at least **{{COVERAGE_THRESHOLD}}%**.
|
|
20
|
-
{{/IF_GO}}
|
|
21
|
-
{{#IF_CSHARP}}
|
|
22
|
-
## C#
|
|
23
|
-
Run: `dotnet test --collect:"XPlat Code Coverage"`
|
|
24
|
-
{{/IF_CSHARP}}
|
|
25
|
-
{{#IF_RUST}}
|
|
26
|
-
## Rust
|
|
27
|
-
Run: `cargo test`
|
|
28
|
-
{{/IF_RUST}}
|
|
29
|
-
{{/IF_NODE}}
|
|
30
|
-
|
|
31
|
-
**Coverage threshold: {{COVERAGE_THRESHOLD}}%**
|
|
32
|
-
|
|
33
|
-
## Report
|
|
34
|
-
|
|
35
|
-
Summarize:
|
|
36
|
-
- Total tests: passed / failed / skipped
|
|
37
|
-
- Coverage: X% (threshold: {{COVERAGE_THRESHOLD}}%)
|
|
38
|
-
- Uncovered critical files (if any)
|
|
39
|
-
|
|
40
|
-
If coverage is below threshold, list the files with lowest coverage that should be prioritized.
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Scan dependencies and code for security vulnerabilities
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
## Step 1: Check for Existing Report
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
ls .dxkit/reports/vulnerability-scan-*.md 2>/dev/null | tail -1
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
**If a report exists**: Read it. The findings and severity counts are deterministic — do not change them. Skip to Step 3.
|
|
12
|
-
|
|
13
|
-
**If no report exists**: Proceed to Step 2.
|
|
14
|
-
|
|
15
|
-
## Step 2: Generate Deterministic Report
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
npx vyuh-dxkit vulnerabilities . --json 2>/dev/null
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
**If the command succeeds**: Read the saved report from `.dxkit/reports/vulnerability-scan-YYYY-MM-DD.md`. Proceed to Step 3.
|
|
22
|
-
|
|
23
|
-
**If the command fails**: Run your own security analysis — check for hardcoded secrets, eval/exec calls, dependency vulnerabilities (`npm audit`), private keys in git, disabled TLS. Note: "Findings are AI-estimated. Install `@vyuhlabs/dxkit` for deterministic scanning with gitleaks + semgrep."
|
|
24
|
-
|
|
25
|
-
## Step 3: Enrich with Narrative
|
|
26
|
-
|
|
27
|
-
Using the findings, add for each vulnerability:
|
|
28
|
-
|
|
29
|
-
- **Risk explanation** — what an attacker could do with this
|
|
30
|
-
- **Exploitation context** — is it remotely exploitable? requires repo access?
|
|
31
|
-
- **Remediation steps** — specific code changes, commands, or migrations needed
|
|
32
|
-
- **Priority rationale** — why fix this before others
|
|
33
|
-
|
|
34
|
-
Add a **Remediation Plan** section:
|
|
35
|
-
- Immediate (today) — rotate compromised credentials, remove private keys from git
|
|
36
|
-
- This week — fix critical code vulnerabilities (eval, exec, TLS)
|
|
37
|
-
- This sprint — address high/medium dependency CVEs
|
|
38
|
-
|
|
39
|
-
**Do not change severity counts or finding details from the deterministic report.**
|
|
40
|
-
|
|
41
|
-
Save to `.dxkit/reports/vulnerability-scan-YYYY-MM-DD.md`.
|
|
42
|
-
|
|
43
|
-
**IMPORTANT: End the report with this exact footer:**
|
|
44
|
-
```
|
|
45
|
-
---
|
|
46
|
-
*Generated by [VyuhLabs DXKit](https://www.npmjs.com/package/@vyuhlabs/dxkit)*
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
$ARGUMENTS
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: build
|
|
3
|
-
description: Build code, compile binaries, install dependencies, clean artifacts. Use when asked to build, compile, install, or clean the project.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Build
|
|
7
|
-
|
|
8
|
-
## Commands
|
|
9
|
-
- `make build` - Build all services
|
|
10
|
-
- `make clean` - Remove build artifacts (bin/, pyc, coverage, tmp/)
|
|
11
|
-
- `make dev` - Start all services (docker-compose up)
|
|
12
|
-
- `make stop` - Stop all services (docker-compose down)
|
|
13
|
-
|
|
14
|
-
{{#IF_PYTHON}}
|
|
15
|
-
## Python Build
|
|
16
|
-
|
|
17
|
-
Python services use editable installs:
|
|
18
|
-
```bash
|
|
19
|
-
pip install -e services/python/<service-name>/
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
Build checks:
|
|
23
|
-
- Syntax: `python3 -m py_compile <file>`
|
|
24
|
-
- Types: `mypy src/`
|
|
25
|
-
- Package: `python3 -m build` (if pyproject.toml has build-system)
|
|
26
|
-
{{/IF_PYTHON}}
|
|
27
|
-
|
|
28
|
-
{{#IF_GO}}
|
|
29
|
-
## Go Build
|
|
30
|
-
|
|
31
|
-
Go services compile to `bin/`:
|
|
32
|
-
```bash
|
|
33
|
-
go build -o bin/<service-name> ./services/go/<service-name>/
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
Build flags:
|
|
37
|
-
- `CGO_ENABLED=0` for static binaries (container-friendly)
|
|
38
|
-
- `-ldflags="-s -w"` to strip debug info (smaller binary)
|
|
39
|
-
- `GOOS=linux GOARCH=amd64` for cross-compilation
|
|
40
|
-
{{/IF_GO}}
|
|
41
|
-
|
|
42
|
-
{{#IF_NODE}}
|
|
43
|
-
## Node.js Build
|
|
44
|
-
|
|
45
|
-
```bash
|
|
46
|
-
npm install # install dependencies
|
|
47
|
-
npm run build # compile TypeScript / bundle
|
|
48
|
-
```
|
|
49
|
-
{{/IF_NODE}}
|
|
50
|
-
|
|
51
|
-
{{#IF_NEXTJS}}
|
|
52
|
-
## Next.js Build
|
|
53
|
-
|
|
54
|
-
```bash
|
|
55
|
-
cd frontend
|
|
56
|
-
npm install
|
|
57
|
-
npm run build # production build (checks for errors)
|
|
58
|
-
npm run dev # development server
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
The build step catches TypeScript errors and missing imports — run it before deploying.
|
|
62
|
-
{{/IF_NEXTJS}}
|
|
63
|
-
|
|
64
|
-
{{#IF_RUST}}
|
|
65
|
-
## Rust Build
|
|
66
|
-
|
|
67
|
-
```bash
|
|
68
|
-
cargo build # debug build
|
|
69
|
-
cargo build --release # optimized build
|
|
70
|
-
```
|
|
71
|
-
{{/IF_RUST}}
|
|
72
|
-
|
|
73
|
-
{{#IF_CSHARP}}
|
|
74
|
-
## C# Build
|
|
75
|
-
|
|
76
|
-
```bash
|
|
77
|
-
dotnet restore # restore NuGet packages
|
|
78
|
-
dotnet build # debug build
|
|
79
|
-
dotnet build --configuration Release # release build
|
|
80
|
-
dotnet publish -c Release -o out/ # publish for deployment
|
|
81
|
-
```
|
|
82
|
-
{{/IF_CSHARP}}
|
|
83
|
-
|
|
84
|
-
{{#IF_DOCKER}}
|
|
85
|
-
## Docker Build
|
|
86
|
-
|
|
87
|
-
```bash
|
|
88
|
-
docker-compose build # build all services
|
|
89
|
-
docker-compose build <service> # build specific service
|
|
90
|
-
docker-compose up --build # rebuild and start
|
|
91
|
-
```
|
|
92
|
-
{{/IF_DOCKER}}
|
|
93
|
-
|
|
94
|
-
## Security
|
|
95
|
-
|
|
96
|
-
- **Never include secrets in build args or Dockerfiles**
|
|
97
|
-
- Use multi-stage builds to avoid leaking build-time dependencies
|
|
98
|
-
- Don't copy `.env` files into Docker images
|