@vyuhlabs/dxkit 2.4.7 → 2.5.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/CHANGELOG.md +456 -30
- package/README.md +360 -439
- package/dist/analyzers/bom/gather.d.ts +3 -3
- package/dist/analyzers/bom/gather.js +3 -3
- package/dist/analyzers/bom/index.js +2 -2
- package/dist/analyzers/bom/index.js.map +1 -1
- package/dist/analyzers/dashboard/index.d.ts.map +1 -1
- package/dist/analyzers/dashboard/index.js +4 -3
- package/dist/analyzers/dashboard/index.js.map +1 -1
- package/dist/analyzers/developer/index.d.ts.map +1 -1
- package/dist/analyzers/developer/index.js +2 -1
- package/dist/analyzers/developer/index.js.map +1 -1
- package/dist/analyzers/dispatcher.d.ts +15 -0
- package/dist/analyzers/dispatcher.d.ts.map +1 -1
- package/dist/analyzers/dispatcher.js +42 -6
- package/dist/analyzers/dispatcher.js.map +1 -1
- package/dist/analyzers/health.d.ts.map +1 -1
- package/dist/analyzers/health.js +11 -1
- package/dist/analyzers/health.js.map +1 -1
- package/dist/analyzers/licenses/gather.d.ts +1 -1
- package/dist/analyzers/licenses/gather.d.ts.map +1 -1
- package/dist/analyzers/licenses/gather.js +18 -2
- package/dist/analyzers/licenses/gather.js.map +1 -1
- package/dist/analyzers/quality/index.d.ts.map +1 -1
- package/dist/analyzers/quality/index.js +10 -2
- package/dist/analyzers/quality/index.js.map +1 -1
- package/dist/analyzers/security/aggregator.d.ts.map +1 -1
- package/dist/analyzers/security/aggregator.js +8 -48
- package/dist/analyzers/security/aggregator.js.map +1 -1
- package/dist/analyzers/security/gather.d.ts +4 -3
- package/dist/analyzers/security/gather.d.ts.map +1 -1
- package/dist/analyzers/security/gather.js +23 -5
- package/dist/analyzers/security/gather.js.map +1 -1
- package/dist/analyzers/security/index.d.ts +1 -1
- package/dist/analyzers/security/index.js +2 -2
- package/dist/analyzers/security/index.js.map +1 -1
- package/dist/analyzers/tools/autogen-header.js +1 -1
- package/dist/analyzers/tools/cloc.js +3 -3
- package/dist/analyzers/tools/cloc.js.map +1 -1
- package/dist/analyzers/tools/deadline.d.ts +67 -0
- package/dist/analyzers/tools/deadline.d.ts.map +1 -0
- package/dist/analyzers/tools/deadline.js +81 -0
- package/dist/analyzers/tools/deadline.js.map +1 -0
- package/dist/analyzers/tools/exclusions.d.ts +6 -6
- package/dist/analyzers/tools/exclusions.js +6 -6
- 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 +7 -2
- 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 +21 -12
- package/dist/analyzers/tools/gitleaks.js.map +1 -1
- package/dist/analyzers/tools/graphify.js +1 -1
- package/dist/analyzers/tools/jscpd.js +1 -1
- package/dist/analyzers/tools/jscpd.js.map +1 -1
- package/dist/analyzers/tools/lint-label.d.ts +29 -0
- package/dist/analyzers/tools/lint-label.d.ts.map +1 -0
- package/dist/analyzers/tools/lint-label.js +23 -0
- package/dist/analyzers/tools/lint-label.js.map +1 -0
- package/dist/analyzers/tools/nuget-package-reference.d.ts +6 -4
- package/dist/analyzers/tools/nuget-package-reference.d.ts.map +1 -1
- package/dist/analyzers/tools/nuget-package-reference.js +7 -5
- package/dist/analyzers/tools/nuget-package-reference.js.map +1 -1
- package/dist/analyzers/tools/report-date.d.ts +17 -0
- package/dist/analyzers/tools/report-date.d.ts.map +1 -0
- package/dist/analyzers/tools/report-date.js +26 -0
- package/dist/analyzers/tools/report-date.js.map +1 -0
- package/dist/analyzers/tools/runner.js +3 -3
- package/dist/analyzers/tools/runner.js.map +1 -1
- package/dist/analyzers/tools/vendored-advisor.js +1 -1
- package/dist/analyzers/tools/walk-paths.d.ts +1 -1
- package/dist/analyzers/tools/walk-paths.js +1 -1
- package/dist/analyzers/tools/walk-source-files.js +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 +395 -92
- package/dist/cli.js.map +1 -1
- package/dist/codebase-scanner.d.ts.map +1 -1
- package/dist/codebase-scanner.js +0 -1
- package/dist/codebase-scanner.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/detect.js +3 -3
- package/dist/detect.js.map +1 -1
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +22 -25
- 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.map +1 -1
- package/dist/generator.js +2 -141
- package/dist/generator.js.map +1 -1
- package/dist/languages/capabilities/provider.d.ts +4 -4
- package/dist/languages/capabilities/types.d.ts +1 -1
- package/dist/languages/csharp.d.ts.map +1 -1
- package/dist/languages/csharp.js +15 -24
- package/dist/languages/csharp.js.map +1 -1
- package/dist/languages/go.d.ts.map +1 -1
- package/dist/languages/go.js +0 -15
- package/dist/languages/go.js.map +1 -1
- package/dist/languages/index.d.ts +4 -3
- package/dist/languages/index.d.ts.map +1 -1
- package/dist/languages/index.js +3 -2
- package/dist/languages/index.js.map +1 -1
- package/dist/languages/java.d.ts.map +1 -1
- package/dist/languages/java.js +0 -6
- package/dist/languages/java.js.map +1 -1
- package/dist/languages/kotlin.d.ts.map +1 -1
- package/dist/languages/kotlin.js +0 -11
- package/dist/languages/kotlin.js.map +1 -1
- package/dist/languages/python.d.ts.map +1 -1
- package/dist/languages/python.js +0 -15
- package/dist/languages/python.js.map +1 -1
- package/dist/languages/ruby.d.ts.map +1 -1
- package/dist/languages/ruby.js +0 -6
- package/dist/languages/ruby.js.map +1 -1
- package/dist/languages/rust.d.ts.map +1 -1
- package/dist/languages/rust.js +0 -4
- package/dist/languages/rust.js.map +1 -1
- package/dist/languages/types.d.ts +9 -35
- package/dist/languages/types.d.ts.map +1 -1
- package/dist/languages/typescript.d.ts.map +1 -1
- package/dist/languages/typescript.js +26 -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 +106 -0
- package/dist/ship-installers.d.ts.map +1 -0
- package/dist/ship-installers.js +415 -0
- package/dist/ship-installers.js.map +1 -0
- 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/agents/onboarding.md +5 -4
- package/templates/.claude/agents-available/codebase-explorer.md +1 -1
- package/templates/.claude/agents-available/debugger.md +2 -2
- package/templates/.claude/agents-available/health-auditor.md +2 -2
- package/templates/.claude/commands/doctor.md +20 -12
- package/templates/.claude/skills/build/SKILL.md.template +22 -30
- package/templates/.claude/skills/deploy/SKILL.md.template +5 -25
- package/templates/.claude/skills/doctor/SKILL.md +24 -47
- package/templates/.claude/skills/gcloud/SKILL.md +5 -5
- package/templates/.claude/skills/learned/SKILL.md +1 -1
- package/templates/.claude/skills/pulumi/SKILL.md +2 -2
- package/templates/.claude/skills/quality/SKILL.md.template +4 -23
- package/templates/.claude/skills/review/SKILL.md.template +4 -3
- package/templates/.claude/skills/scaffold/SKILL.md.template +5 -15
- package/templates/.claude/skills/secrets/SKILL.md +20 -21
- package/templates/.claude/skills/session/SKILL.md +20 -31
- package/templates/.claude/skills/test/SKILL.md.template +1 -7
- package/templates/.devcontainer/devcontainer.json +81 -0
- package/templates/.devcontainer/install-agent-clis.sh +42 -0
- package/templates/.devcontainer/post-create.sh +67 -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/CLAUDE.md.template +62 -196
- 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/commands/setup-pr-review.md +0 -72
- 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
|
@@ -2,254 +2,120 @@
|
|
|
2
2
|
|
|
3
3
|
{{PROJECT_DESCRIPTION}}
|
|
4
4
|
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
- Monorepo with make-based task runner
|
|
8
|
-
- Configuration driven by `.project.yaml` (single source of truth)
|
|
9
|
-
- Quality checks, testing, and formatting enforced via `make check`
|
|
10
|
-
|
|
11
|
-
## Quick Reference
|
|
12
|
-
|
|
13
|
-
### Setup & Diagnostics
|
|
14
|
-
- `make setup` - Interactive setup for new developers
|
|
15
|
-
- `make doctor` - Diagnose common setup issues
|
|
16
|
-
- `make info` - Show project configuration dashboard
|
|
17
|
-
- `make config` - Interactive configuration editor
|
|
18
|
-
|
|
19
|
-
### Code Quality
|
|
20
|
-
- `make quality` - Run all quality checks (report: tmp/reports/quality-report.md)
|
|
21
|
-
- `make quality-fix` - Auto-fix issues
|
|
22
|
-
- `make lint` - Lint all code
|
|
23
|
-
- `make format` - Format all code
|
|
24
|
-
- `make fix` - Fix all auto-fixable issues (quality-fix + format)
|
|
25
|
-
- `make check` - Full pre-commit check (validate + quality + test)
|
|
26
|
-
|
|
27
|
-
### Testing
|
|
28
|
-
- `make test` - Run all tests (report: tmp/reports/test-report.md)
|
|
29
|
-
- `make test-unit` - Fast unit tests only
|
|
30
|
-
- `make test-coverage` - Detailed coverage report
|
|
31
|
-
- Coverage threshold: {{COVERAGE_THRESHOLD}}%
|
|
32
|
-
|
|
33
|
-
### Build & Development
|
|
34
|
-
- `make build` - Build all services
|
|
35
|
-
- `make clean` - Remove build artifacts
|
|
36
|
-
- `make dev` - Start all services (docker-compose up)
|
|
37
|
-
- `make stop` - Stop all services
|
|
38
|
-
|
|
39
|
-
### Session Workflow
|
|
40
|
-
- `make session-start` - Start AI-assisted development session
|
|
41
|
-
- `make session-end` - End session and create checkpoint
|
|
42
|
-
- `make session-commit` - Commit with quality checks
|
|
43
|
-
- `make session-push` - Push to remote
|
|
44
|
-
- `make session-pr` - Create PR with auto-generated content
|
|
5
|
+
## How to use this file
|
|
45
6
|
|
|
46
|
-
|
|
47
|
-
### Secrets Management
|
|
48
|
-
- `make secrets-pull` - Pull secrets from Infisical to .env
|
|
49
|
-
- `make secrets-show` - Show Infisical configuration (no secrets displayed)
|
|
50
|
-
{{/IF_INFISICAL}}
|
|
7
|
+
This file is loaded by Claude Code at the start of every session in this repo. It tells the agent what this project is, how to run common commands, and what safety rules to follow.
|
|
51
8
|
|
|
52
|
-
|
|
53
|
-
-
|
|
54
|
-
-
|
|
55
|
-
-
|
|
56
|
-
-
|
|
9
|
+
The rest of `.claude/` extends this:
|
|
10
|
+
- **Skills** (`.claude/skills/`) — domain context loaded on demand
|
|
11
|
+
- **Commands** (`.claude/commands/`) — slash commands for common workflows
|
|
12
|
+
- **Agents** (`.claude/agents/`) — specialists Claude delegates to automatically
|
|
13
|
+
- **Rules** (`.claude/rules/`) — language-specific conventions
|
|
57
14
|
|
|
58
|
-
|
|
59
|
-
- `make generate` - Generate all code
|
|
60
|
-
- `make validate` - Validate generated code is up-to-date
|
|
15
|
+
Run `/help` for the full list.
|
|
61
16
|
|
|
62
17
|
{{#IF_PYTHON}}
|
|
63
18
|
## Python {{PYTHON_VERSION}}
|
|
64
19
|
|
|
65
|
-
- **
|
|
66
|
-
- **
|
|
67
|
-
- **Type
|
|
68
|
-
- **
|
|
69
|
-
- **Package config:** `pyproject.toml`
|
|
70
|
-
- Run quality: `.project/scripts/quality/lint-python.sh`
|
|
20
|
+
- **Tests**: `pytest`
|
|
21
|
+
- **Lint/format**: `ruff check .` / `ruff format .`
|
|
22
|
+
- **Type check**: `mypy src/`
|
|
23
|
+
- **Package config**: `pyproject.toml`
|
|
71
24
|
{{/IF_PYTHON}}
|
|
72
25
|
|
|
73
26
|
{{#IF_GO}}
|
|
74
27
|
## Go {{GO_VERSION}}
|
|
75
28
|
|
|
76
|
-
- **
|
|
77
|
-
- **
|
|
78
|
-
- **
|
|
79
|
-
- **
|
|
80
|
-
- **Module:** `go.mod`
|
|
81
|
-
- Run quality: `.project/scripts/quality/lint-go.sh`
|
|
29
|
+
- **Tests**: `go test ./...`
|
|
30
|
+
- **Lint**: `golangci-lint run`
|
|
31
|
+
- **Format**: `gofmt -w .` / `goimports -w .`
|
|
32
|
+
- **Module**: `go.mod`
|
|
82
33
|
{{/IF_GO}}
|
|
83
34
|
|
|
84
35
|
{{#IF_NODE}}
|
|
85
36
|
## Node.js {{NODE_VERSION}}
|
|
86
37
|
|
|
87
|
-
- **
|
|
88
|
-
- **
|
|
89
|
-
- **
|
|
90
|
-
- **
|
|
38
|
+
- **Tests**: `npm test`
|
|
39
|
+
- **Build**: `npm run build`
|
|
40
|
+
- **Lint/format**: `npx eslint .` / `npx prettier --write .`
|
|
41
|
+
- **Package config**: `package.json`, `tsconfig.json`
|
|
91
42
|
{{/IF_NODE}}
|
|
92
43
|
|
|
93
44
|
{{#IF_NEXTJS}}
|
|
94
45
|
## Next.js
|
|
95
46
|
|
|
96
|
-
- **Directory
|
|
97
|
-
- **
|
|
98
|
-
- **Build
|
|
99
|
-
- **Lint
|
|
47
|
+
- **Directory**: `frontend/`
|
|
48
|
+
- **Dev server**: `cd frontend && npm run dev`
|
|
49
|
+
- **Build**: `cd frontend && npm run build`
|
|
50
|
+
- **Lint**: `cd frontend && npm run lint`
|
|
100
51
|
{{/IF_NEXTJS}}
|
|
101
52
|
|
|
102
53
|
{{#IF_RUST}}
|
|
103
54
|
## Rust {{RUST_VERSION}}
|
|
104
55
|
|
|
105
|
-
- **
|
|
106
|
-
- **
|
|
107
|
-
- **
|
|
108
|
-
- **
|
|
56
|
+
- **Tests**: `cargo test`
|
|
57
|
+
- **Build**: `cargo build` / `cargo build --release`
|
|
58
|
+
- **Lint**: `cargo clippy`
|
|
59
|
+
- **Format**: `cargo fmt`
|
|
60
|
+
- **Package**: `Cargo.toml`
|
|
109
61
|
{{/IF_RUST}}
|
|
110
62
|
|
|
111
63
|
{{#IF_CSHARP}}
|
|
112
64
|
## C# {{CSHARP_VERSION}}
|
|
113
65
|
|
|
114
|
-
- **
|
|
115
|
-
- **
|
|
116
|
-
- **
|
|
117
|
-
- **
|
|
118
|
-
- **Formatter:** `dotnet format`
|
|
119
|
-
- **Tests:** `dotnet test` (xUnit)
|
|
66
|
+
- **Tests**: `dotnet test`
|
|
67
|
+
- **Build**: `dotnet build` / `dotnet publish -c Release`
|
|
68
|
+
- **Format**: `dotnet format`
|
|
69
|
+
- **Solution**: `*.sln`, projects under `*.csproj`
|
|
120
70
|
{{/IF_CSHARP}}
|
|
121
71
|
|
|
122
72
|
{{#IF_GCLOUD}}
|
|
123
73
|
## Google Cloud
|
|
124
74
|
|
|
125
|
-
- **Auth
|
|
126
|
-
- **Project
|
|
127
|
-
- **SDK:** Installed via devcontainer post-create script
|
|
75
|
+
- **Auth**: `gcloud auth login`
|
|
76
|
+
- **Project**: set via `gcloud config set project <id>` or `GOOGLE_CLOUD_PROJECT` env var
|
|
128
77
|
{{/IF_GCLOUD}}
|
|
129
78
|
|
|
130
79
|
{{#IF_PULUMI}}
|
|
131
80
|
## Pulumi
|
|
132
81
|
|
|
133
|
-
- **Auth
|
|
134
|
-
- **Workflow
|
|
135
|
-
- **Secrets
|
|
82
|
+
- **Auth**: `pulumi login`
|
|
83
|
+
- **Workflow**: always `pulumi preview` before `pulumi up`
|
|
84
|
+
- **Secrets**: `pulumi config set --secret` for sensitive values
|
|
136
85
|
{{/IF_PULUMI}}
|
|
137
86
|
|
|
138
|
-
##
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
-
|
|
143
|
-
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
- `/
|
|
148
|
-
- `/
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
- `/help` - List all commands and agents
|
|
154
|
-
- `/quality` - Run quality checks (language-aware)
|
|
155
|
-
- `/setup-hooks` - Install git pre-commit/pre-push hooks
|
|
156
|
-
- `/learn` - Capture a gotcha, convention, or thing to avoid
|
|
157
|
-
- `/test` - Run tests
|
|
158
|
-
- `/setup-pr-review` - Set up automated PR review with Claude Code
|
|
159
|
-
- `/test-gaps` - Find critical untested code paths
|
|
160
|
-
- `/deps` - Map dependencies ("what breaks if I change X?")
|
|
161
|
-
- `/health` - Comprehensive codebase health audit
|
|
162
|
-
- `/vulnerabilities` - Scan dependencies and code for security issues
|
|
163
|
-
- `/dev-report` - Developer activity and code quality report
|
|
164
|
-
- `/docs` - Audit, write, or improve documentation
|
|
165
|
-
- `/plan` - Generate improvement plans with KPIs from reports (fix loop)
|
|
166
|
-
- `/execute-plan` - Execute a plan task by task with session management
|
|
167
|
-
- `/feature` - Design and plan a new feature
|
|
168
|
-
- `/build-feature` - Build a feature from a plan with tests
|
|
169
|
-
- `/dashboard` - Generate HTML dashboard from all reports
|
|
170
|
-
- `/stealth-mode` - Gitignore DXKit files + install smart scoped git hooks
|
|
171
|
-
- `/export-pdf` - Convert markdown reports to PDF
|
|
172
|
-
- `/fix-issue <number>` - Investigate and fix a GitHub issue
|
|
173
|
-
|
|
174
|
-
### Rules (`.claude/rules/`)
|
|
175
|
-
Language-specific conventions that activate automatically when editing matching files.
|
|
176
|
-
|
|
177
|
-
### Agents
|
|
178
|
-
**Active** (`.claude/agents/`) — auto-triggered when your question matches:
|
|
179
|
-
- `knowledge-bot` — Answers codebase questions with file:line references (sonnet, read-only)
|
|
180
|
-
- `onboarding` — Interactive onboarding buddy for new developers (sonnet, read-only)
|
|
181
|
-
- `quality-reviewer` — Reviews changed code for issues before committing (sonnet)
|
|
182
|
-
- `doc-writer` — Audits docs, identifies gaps, writes/improves documentation (sonnet)
|
|
183
|
-
|
|
184
|
-
**Dormant** (`.claude/agents-available/`) — activate with `/enable-agent <name>`:
|
|
185
|
-
- `codebase-explorer` — Deep architecture analysis, generates codebase skill (sonnet, read-only)
|
|
186
|
-
- `code-reviewer` — Read-only PR review and security audit (sonnet, no write access)
|
|
187
|
-
- `test-writer` — Writes tests for existing code (sonnet)
|
|
188
|
-
- `test-gap-finder` — Identifies critical untested code paths (sonnet, read-only)
|
|
189
|
-
- `dependency-mapper` — Maps import chains and blast radius (sonnet, read-only)
|
|
190
|
-
- `health-auditor` — Comprehensive codebase health audit (sonnet, read-only)
|
|
191
|
-
- `vulnerability-scanner` — Dependency and code vulnerability analysis (sonnet)
|
|
192
|
-
- `dev-report` — Developer activity, quality patterns, security attribution (sonnet)
|
|
193
|
-
- `dashboard-builder` — Generates HTML dashboard from all reports (sonnet)
|
|
194
|
-
- `strategic-planner` — Analyzes reports, proposes KPIs, generates improvement plans (sonnet)
|
|
195
|
-
- `plan-executor` — Executes plans task by task with session checkpoints (sonnet)
|
|
196
|
-
- `feature-planner` — Designs new features, generates implementation plans (sonnet)
|
|
197
|
-
- `feature-builder` — Implements features from plans with tests and conventions (sonnet)
|
|
198
|
-
- `hooks-configurator` — Configures scoped git hooks from DXKit commands (sonnet)
|
|
199
|
-
- `doc-writer` — Audits docs, identifies gaps, writes/improves documentation (sonnet)
|
|
200
|
-
- `debugger` — Traces root causes systematically (sonnet, no file edits)
|
|
201
|
-
|
|
202
|
-
## AI-Assisted Development Workflow
|
|
203
|
-
|
|
204
|
-
```
|
|
205
|
-
# 1. Start a session
|
|
206
|
-
/session-start
|
|
207
|
-
|
|
208
|
-
# 2. Create a feature branch
|
|
209
|
-
git checkout -b feature/your-feature
|
|
210
|
-
|
|
211
|
-
# 3. Ask questions as you go
|
|
212
|
-
/ask How does the auth middleware work?
|
|
213
|
-
|
|
214
|
-
# 4. Develop — Claude has full project context via skills
|
|
215
|
-
|
|
216
|
-
# 5. Run checks before committing
|
|
217
|
-
/quality
|
|
218
|
-
/test
|
|
219
|
-
|
|
220
|
-
# 6. Commit and push
|
|
221
|
-
git add -A && git commit -m "feat: your feature"
|
|
222
|
-
git push -u origin feature/your-feature
|
|
223
|
-
|
|
224
|
-
# 7. End session (creates checkpoint + evolves skills)
|
|
225
|
-
/session-end
|
|
226
|
-
```
|
|
227
|
-
|
|
228
|
-
## Security
|
|
229
|
-
|
|
230
|
-
**Critical rules — never violate these:**
|
|
87
|
+
## Common slash commands
|
|
88
|
+
|
|
89
|
+
- `/health` — full codebase health audit (6 dimensions)
|
|
90
|
+
- `/vulnerabilities` — scan dependencies + code for security issues
|
|
91
|
+
- `/test-gaps` — find critical untested code paths
|
|
92
|
+
- `/quality` — code quality + slop analysis
|
|
93
|
+
- `/dev-report` — team activity from git history
|
|
94
|
+
- `/ask <question>` — natural-language Q&A against the codebase
|
|
95
|
+
- `/explore-codebase` — deep architecture exploration (run once on a new repo)
|
|
96
|
+
- `/setup-hooks` — install git pre-commit/pre-push hooks
|
|
97
|
+
- `/learn` — capture a gotcha or convention from the current conversation
|
|
98
|
+
|
|
99
|
+
Run `/help` for the full list of commands and agents.
|
|
100
|
+
|
|
101
|
+
## Security rules — never violate
|
|
231
102
|
|
|
232
103
|
1. **Never output, log, or commit secrets** — no API keys, tokens, passwords, or credentials in code, commits, checkpoints, or skill files
|
|
233
|
-
2. **Never read `.env` directly** —
|
|
104
|
+
2. **Never read `.env` directly** — if you need to confirm a value exists, grep for the variable name only
|
|
234
105
|
3. **Never pass secrets as CLI arguments** — they appear in process lists and shell history
|
|
235
106
|
4. **Never include secrets in build args or Dockerfiles**
|
|
236
|
-
5. **Sensitive files are gitignored
|
|
237
|
-
6. **Before committing
|
|
107
|
+
5. **Sensitive files are gitignored**: `.env`, `.env.*`, `.env.secrets`, `.claude/settings.local.json`
|
|
108
|
+
6. **Before committing**: verify no secrets in staged files (`git diff --cached`)
|
|
238
109
|
{{#IF_INFISICAL}}
|
|
239
|
-
7. **Infisical tokens
|
|
110
|
+
7. **Infisical tokens**: never output `INFISICAL_TOKEN` values
|
|
240
111
|
{{/IF_INFISICAL}}
|
|
241
112
|
{{#IF_GCLOUD}}
|
|
242
|
-
8. **GCP credentials
|
|
113
|
+
8. **GCP credentials**: never output `gcloud auth print-access-token` or service account JSON keys
|
|
243
114
|
{{/IF_GCLOUD}}
|
|
244
115
|
|
|
245
116
|
## Conventions
|
|
246
117
|
|
|
247
|
-
- Run quality
|
|
248
|
-
-
|
|
249
|
-
-
|
|
250
|
-
|
|
251
|
-
- Pre-commit hooks run automatically on `git commit`
|
|
252
|
-
{{/IF_PRECOMMIT}}
|
|
253
|
-
- Keep session checkpoints in `.ai/sessions/<developer>/<date>/`
|
|
254
|
-
- Skills evolve over time — gotchas and conventions are captured during `/session-end`
|
|
255
|
-
- Check `/help` for all available commands and agents
|
|
118
|
+
- Run `/quality` and `/test` before committing
|
|
119
|
+
- For changes to risky areas (auth, payments, data mutations), write tests first
|
|
120
|
+
- Capture surprising behaviors via `/learn` so the next session inherits them
|
|
121
|
+
- Check `/help` for available commands and agents
|
package/dist/project-yaml.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { ResolvedConfig } from './types';
|
|
2
|
-
/** Check if .project.yaml exists in the given directory. */
|
|
3
|
-
export declare function hasProjectYaml(cwd: string): boolean;
|
|
4
|
-
/**
|
|
5
|
-
* Read .project.yaml and build a ResolvedConfig from it.
|
|
6
|
-
* This is the primary config source when create-devstack has already
|
|
7
|
-
* written the file — dxkit skips detect() and prompts in this case.
|
|
8
|
-
*
|
|
9
|
-
* Returns null if the file is malformed or missing required fields
|
|
10
|
-
* (project.name). The caller should fall back to detect() + prompts.
|
|
11
|
-
*/
|
|
12
|
-
export declare function readProjectYaml(cwd: string): ResolvedConfig | null;
|
|
13
|
-
//# sourceMappingURL=project-yaml.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"project-yaml.d.ts","sourceRoot":"","sources":["../src/project-yaml.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAiB,MAAM,SAAS,CAAC;AA4CxD,4DAA4D;AAC5D,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAqFlE"}
|
package/dist/project-yaml.js
DELETED
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.hasProjectYaml = hasProjectYaml;
|
|
37
|
-
exports.readProjectYaml = readProjectYaml;
|
|
38
|
-
const fs = __importStar(require("fs"));
|
|
39
|
-
const path = __importStar(require("path"));
|
|
40
|
-
const constants_1 = require("./constants");
|
|
41
|
-
const languages_1 = require("./languages");
|
|
42
|
-
/** Check if .project.yaml exists in the given directory. */
|
|
43
|
-
function hasProjectYaml(cwd) {
|
|
44
|
-
return fs.existsSync(path.join(cwd, '.project.yaml'));
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Read .project.yaml and build a ResolvedConfig from it.
|
|
48
|
-
* This is the primary config source when create-devstack has already
|
|
49
|
-
* written the file — dxkit skips detect() and prompts in this case.
|
|
50
|
-
*
|
|
51
|
-
* Returns null if the file is malformed or missing required fields
|
|
52
|
-
* (project.name). The caller should fall back to detect() + prompts.
|
|
53
|
-
*/
|
|
54
|
-
function readProjectYaml(cwd) {
|
|
55
|
-
const filePath = path.join(cwd, '.project.yaml');
|
|
56
|
-
let raw;
|
|
57
|
-
try {
|
|
58
|
-
raw = fs.readFileSync(filePath, 'utf-8');
|
|
59
|
-
}
|
|
60
|
-
catch {
|
|
61
|
-
return null;
|
|
62
|
-
}
|
|
63
|
-
let yaml;
|
|
64
|
-
try {
|
|
65
|
-
yaml = parseSimpleYaml(raw);
|
|
66
|
-
}
|
|
67
|
-
catch {
|
|
68
|
-
return null;
|
|
69
|
-
}
|
|
70
|
-
// project.name is required
|
|
71
|
-
if (!yaml.project?.name) {
|
|
72
|
-
return null;
|
|
73
|
-
}
|
|
74
|
-
const langs = yaml.languages ?? {};
|
|
75
|
-
const infra = yaml.infrastructure ?? {};
|
|
76
|
-
const tools = yaml.tools ?? {};
|
|
77
|
-
const langEnabled = (name) => langs[name]?.enabled ?? false;
|
|
78
|
-
const infraEnabled = (name) => infra[name]?.enabled ?? false;
|
|
79
|
-
// Find coverage from first enabled language with quality settings
|
|
80
|
-
let coverage = constants_1.DEFAULT_COVERAGE;
|
|
81
|
-
for (const lang of Object.values(langs)) {
|
|
82
|
-
if (lang?.enabled && lang.quality?.coverage) {
|
|
83
|
-
coverage = String(lang.quality.coverage);
|
|
84
|
-
break;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
// YAML uses legacy keys `node` / `nextjs` for backwards compat with
|
|
88
|
-
// existing `.project.yaml` files. After 10f.4, `DetectedStack.languages`
|
|
89
|
-
// is keyed on `LanguageId`. Iterate the registry so adding a new pack
|
|
90
|
-
// auto-extends YAML reading — by default each pack maps to its
|
|
91
|
-
// matching `langEnabled(<id>)`. The typescript pack is the only
|
|
92
|
-
// special case: yaml's `node` OR `nextjs` activates it.
|
|
93
|
-
const VERSION_KEYS = ['python', 'go', 'node', 'rust', 'csharp'];
|
|
94
|
-
const yamlNextjs = langEnabled('nextjs');
|
|
95
|
-
const detected = {
|
|
96
|
-
languages: Object.fromEntries(languages_1.LANGUAGES.map((lang) => {
|
|
97
|
-
if (lang.id === 'typescript')
|
|
98
|
-
return [lang.id, langEnabled('node') || yamlNextjs];
|
|
99
|
-
return [lang.id, langEnabled(lang.id)];
|
|
100
|
-
})),
|
|
101
|
-
infrastructure: {
|
|
102
|
-
docker: tools.docker ?? true,
|
|
103
|
-
postgres: infraEnabled('postgres'),
|
|
104
|
-
redis: infraEnabled('redis'),
|
|
105
|
-
},
|
|
106
|
-
tools: {
|
|
107
|
-
gcloud: tools.gcloud ?? false,
|
|
108
|
-
pulumi: tools.pulumi ?? false,
|
|
109
|
-
infisical: tools.infisical ?? false,
|
|
110
|
-
ghCli: tools.github_cli ?? true,
|
|
111
|
-
},
|
|
112
|
-
projectName: yaml.project.name,
|
|
113
|
-
projectDescription: yaml.project.description ?? '',
|
|
114
|
-
versions: Object.fromEntries(VERSION_KEYS.map((k) => [k, langs[k]?.version ?? constants_1.DEFAULT_VERSIONS[k]])),
|
|
115
|
-
// 10f.4: nextjs moved out of `languages` and is now exclusively the
|
|
116
|
-
// framework signal. Preserved here so downstream consumers (generator,
|
|
117
|
-
// buildConditions) continue to see `framework === 'nextjs'`.
|
|
118
|
-
framework: yamlNextjs ? 'nextjs' : undefined,
|
|
119
|
-
requiredTools: [],
|
|
120
|
-
};
|
|
121
|
-
return {
|
|
122
|
-
...detected,
|
|
123
|
-
coverageThreshold: coverage,
|
|
124
|
-
precommit: tools.precommit ?? true,
|
|
125
|
-
qualityChecks: true,
|
|
126
|
-
aiSessions: true,
|
|
127
|
-
aiPrompts: true,
|
|
128
|
-
claudeCode: tools.claude_code ?? true,
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* Minimal YAML parser for .project.yaml.
|
|
133
|
-
* Handles the specific structure we expect — nested objects with scalar values.
|
|
134
|
-
* Avoids adding a `yaml` npm dependency to dxkit (which has zero runtime deps).
|
|
135
|
-
*/
|
|
136
|
-
function parseSimpleYaml(raw) {
|
|
137
|
-
const lines = raw.split('\n');
|
|
138
|
-
const result = {};
|
|
139
|
-
const stack = [
|
|
140
|
-
{ indent: -1, obj: result },
|
|
141
|
-
];
|
|
142
|
-
for (const line of lines) {
|
|
143
|
-
// Skip empty lines and comments
|
|
144
|
-
if (!line.trim() || line.trim().startsWith('#'))
|
|
145
|
-
continue;
|
|
146
|
-
const indent = line.search(/\S/);
|
|
147
|
-
const trimmed = line.trim();
|
|
148
|
-
// Pop stack to find parent
|
|
149
|
-
while (stack.length > 1 && stack[stack.length - 1].indent >= indent) {
|
|
150
|
-
stack.pop();
|
|
151
|
-
}
|
|
152
|
-
const parent = stack[stack.length - 1].obj;
|
|
153
|
-
const colonIdx = trimmed.indexOf(':');
|
|
154
|
-
if (colonIdx === -1)
|
|
155
|
-
continue;
|
|
156
|
-
const key = trimmed.slice(0, colonIdx).trim();
|
|
157
|
-
const valueStr = trimmed.slice(colonIdx + 1).trim();
|
|
158
|
-
if (valueStr === '' || valueStr === '{}') {
|
|
159
|
-
// Nested object (or empty object)
|
|
160
|
-
const child = {};
|
|
161
|
-
parent[key] = child;
|
|
162
|
-
if (valueStr !== '{}') {
|
|
163
|
-
stack.push({ indent, obj: child });
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
else {
|
|
167
|
-
// Scalar value
|
|
168
|
-
parent[key] = parseScalar(valueStr);
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
return result;
|
|
172
|
-
}
|
|
173
|
-
function parseScalar(value) {
|
|
174
|
-
// Remove surrounding quotes
|
|
175
|
-
if ((value.startsWith("'") && value.endsWith("'")) ||
|
|
176
|
-
(value.startsWith('"') && value.endsWith('"'))) {
|
|
177
|
-
return value.slice(1, -1);
|
|
178
|
-
}
|
|
179
|
-
if (value === 'true')
|
|
180
|
-
return true;
|
|
181
|
-
if (value === 'false')
|
|
182
|
-
return false;
|
|
183
|
-
const num = Number(value);
|
|
184
|
-
if (!isNaN(num) && value !== '')
|
|
185
|
-
return num;
|
|
186
|
-
return value;
|
|
187
|
-
}
|
|
188
|
-
//# sourceMappingURL=project-yaml.js.map
|
package/dist/project-yaml.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"project-yaml.js","sourceRoot":"","sources":["../src/project-yaml.ts"],"names":[],"mappings":"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"}
|
package/templates/.ai/README.md
DELETED
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
# AI-Assisted Development Sessions
|
|
2
|
-
|
|
3
|
-
This directory contains session checkpoints, templates, and prompts for AI-assisted development.
|
|
4
|
-
|
|
5
|
-
## Directory Structure
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
.ai/
|
|
9
|
-
├── README.md # This file
|
|
10
|
-
├── sessions/ # Session checkpoints by developer
|
|
11
|
-
│ ├── john-doe/
|
|
12
|
-
│ │ ├── 2025-10-05/
|
|
13
|
-
│ │ │ ├── session-1.md
|
|
14
|
-
│ │ │ └── session-2.md
|
|
15
|
-
│ │ └── 2025-10-06/
|
|
16
|
-
│ │ └── session-1.md
|
|
17
|
-
│ └── jane-smith/
|
|
18
|
-
│ └── 2025-10-05/
|
|
19
|
-
│ └── session-1.md
|
|
20
|
-
├── templates/
|
|
21
|
-
│ └── session-checkpoint-template.md # Checkpoint template
|
|
22
|
-
└── prompts/
|
|
23
|
-
├── session-start.md # Starting session prompt
|
|
24
|
-
├── step-by-step.md # Development flow prompt
|
|
25
|
-
└── session-end.md # Ending session prompt
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
## Quick Start
|
|
29
|
-
|
|
30
|
-
### Starting a New Session
|
|
31
|
-
|
|
32
|
-
```bash
|
|
33
|
-
make ai-start
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
This will:
|
|
37
|
-
- Show your last checkpoint (if exists)
|
|
38
|
-
- Display the session start prompt
|
|
39
|
-
- Help you plan the session with AI
|
|
40
|
-
|
|
41
|
-
### During Development
|
|
42
|
-
|
|
43
|
-
```bash
|
|
44
|
-
make ai-step
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
Shows the step-by-step development guide for AI-assisted coding.
|
|
48
|
-
|
|
49
|
-
### Ending a Session
|
|
50
|
-
|
|
51
|
-
```bash
|
|
52
|
-
make ai-checkpoint
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
This will:
|
|
56
|
-
- Show the session end prompt
|
|
57
|
-
- Tell AI where to create the checkpoint file
|
|
58
|
-
- Provide the template location
|
|
59
|
-
|
|
60
|
-
### View Session History
|
|
61
|
-
|
|
62
|
-
```bash
|
|
63
|
-
make ai-history
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
Shows recent sessions for you and other developers.
|
|
67
|
-
|
|
68
|
-
## Session Workflow
|
|
69
|
-
|
|
70
|
-
1. **Start:** `make ai-start` → Plan with AI
|
|
71
|
-
2. **Develop:** Code step-by-step, use `make ai-step` as reference
|
|
72
|
-
3. **End:** `make ai-checkpoint` → AI creates checkpoint
|
|
73
|
-
4. **Commit:** Include checkpoint in commit message
|
|
74
|
-
|
|
75
|
-
## Session Naming Convention
|
|
76
|
-
|
|
77
|
-
```
|
|
78
|
-
.ai/sessions/{developer-name}/{YYYY-MM-DD}/session-{N}.md
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
- `developer-name`: From `git config user.name` (lowercase, hyphens)
|
|
82
|
-
- `YYYY-MM-DD`: Dated folder for that day's sessions
|
|
83
|
-
- `N`: Session number for that day
|
|
84
|
-
|
|
85
|
-
## What Goes in a Checkpoint?
|
|
86
|
-
|
|
87
|
-
A good checkpoint includes:
|
|
88
|
-
|
|
89
|
-
- **Session goal** - What we set out to accomplish
|
|
90
|
-
- **Accomplishments** - Specific items completed
|
|
91
|
-
- **Files changed** - All created/modified files
|
|
92
|
-
- **Key decisions** - Why we chose this approach
|
|
93
|
-
- **Implementation details** - How it works
|
|
94
|
-
- **Testing status** - What's tested and passing
|
|
95
|
-
- **Next steps** - Clear actions for next session
|
|
96
|
-
- **AI context** - Detailed context for continuing
|
|
97
|
-
|
|
98
|
-
See [session-checkpoint-template.md](templates/session-checkpoint-template.md) for full structure.
|
|
99
|
-
|
|
100
|
-
## Best Practices
|
|
101
|
-
|
|
102
|
-
✅ **Do:**
|
|
103
|
-
- Create checkpoints at end of every session
|
|
104
|
-
- Be specific and detailed
|
|
105
|
-
- Document key decisions and reasoning
|
|
106
|
-
- Provide clear next steps
|
|
107
|
-
- Include enough context for AI to continue
|
|
108
|
-
|
|
109
|
-
❌ **Don't:**
|
|
110
|
-
- Skip checkpoint creation
|
|
111
|
-
- Be vague ("worked on stuff")
|
|
112
|
-
- Forget to list all file changes
|
|
113
|
-
- Leave out decision rationale
|
|
114
|
-
|
|
115
|
-
---
|
|
116
|
-
|
|
117
|
-
**Remember:** Good checkpoints enable seamless collaboration between developers and AI agents.
|