@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.
Files changed (319) hide show
  1. package/CHANGELOG.md +312 -0
  2. package/README.md +360 -439
  3. package/dist/analyzers/security/aggregator.d.ts.map +1 -1
  4. package/dist/analyzers/security/aggregator.js +4 -46
  5. package/dist/analyzers/security/aggregator.js.map +1 -1
  6. package/dist/analyzers/tools/fingerprint.d.ts +91 -26
  7. package/dist/analyzers/tools/fingerprint.d.ts.map +1 -1
  8. package/dist/analyzers/tools/fingerprint.js +111 -22
  9. package/dist/analyzers/tools/fingerprint.js.map +1 -1
  10. package/dist/analyzers/tools/generic.d.ts.map +1 -1
  11. package/dist/analyzers/tools/generic.js +6 -1
  12. package/dist/analyzers/tools/generic.js.map +1 -1
  13. package/dist/analyzers/tools/gitleaks.d.ts +24 -1
  14. package/dist/analyzers/tools/gitleaks.d.ts.map +1 -1
  15. package/dist/analyzers/tools/gitleaks.js +20 -11
  16. package/dist/analyzers/tools/gitleaks.js.map +1 -1
  17. package/dist/analyzers/tools/graphify.d.ts.map +1 -1
  18. package/dist/analyzers/tools/graphify.js +9 -5
  19. package/dist/analyzers/tools/graphify.js.map +1 -1
  20. package/dist/analyzers/tools/tool-registry.d.ts +19 -1
  21. package/dist/analyzers/tools/tool-registry.d.ts.map +1 -1
  22. package/dist/analyzers/tools/tool-registry.js +25 -0
  23. package/dist/analyzers/tools/tool-registry.js.map +1 -1
  24. package/dist/analyzers/types.d.ts +6 -4
  25. package/dist/analyzers/types.d.ts.map +1 -1
  26. package/dist/baseline/baseline-file.d.ts +104 -0
  27. package/dist/baseline/baseline-file.d.ts.map +1 -0
  28. package/dist/baseline/baseline-file.js +110 -0
  29. package/dist/baseline/baseline-file.js.map +1 -0
  30. package/dist/baseline/check-renderers.d.ts +108 -0
  31. package/dist/baseline/check-renderers.d.ts.map +1 -0
  32. package/dist/baseline/check-renderers.js +379 -0
  33. package/dist/baseline/check-renderers.js.map +1 -0
  34. package/dist/baseline/check.d.ts +127 -0
  35. package/dist/baseline/check.d.ts.map +1 -0
  36. package/dist/baseline/check.js +462 -0
  37. package/dist/baseline/check.js.map +1 -0
  38. package/dist/baseline/content-hash.d.ts +83 -0
  39. package/dist/baseline/content-hash.d.ts.map +1 -0
  40. package/dist/baseline/content-hash.js +131 -0
  41. package/dist/baseline/content-hash.js.map +1 -0
  42. package/dist/baseline/create.d.ts +96 -0
  43. package/dist/baseline/create.d.ts.map +1 -0
  44. package/dist/baseline/create.js +339 -0
  45. package/dist/baseline/create.js.map +1 -0
  46. package/dist/baseline/entry-to-located.d.ts +35 -0
  47. package/dist/baseline/entry-to-located.d.ts.map +1 -0
  48. package/dist/baseline/entry-to-located.js +72 -0
  49. package/dist/baseline/entry-to-located.js.map +1 -0
  50. package/dist/baseline/finding-identity.d.ts +47 -0
  51. package/dist/baseline/finding-identity.d.ts.map +1 -0
  52. package/dist/baseline/finding-identity.js +292 -0
  53. package/dist/baseline/finding-identity.js.map +1 -0
  54. package/dist/baseline/git-aware-match.d.ts +146 -0
  55. package/dist/baseline/git-aware-match.d.ts.map +1 -0
  56. package/dist/baseline/git-aware-match.js +439 -0
  57. package/dist/baseline/git-aware-match.js.map +1 -0
  58. package/dist/baseline/policy.d.ts +171 -0
  59. package/dist/baseline/policy.d.ts.map +1 -0
  60. package/dist/baseline/policy.js +206 -0
  61. package/dist/baseline/policy.js.map +1 -0
  62. package/dist/baseline/producers/health.d.ts +30 -0
  63. package/dist/baseline/producers/health.d.ts.map +1 -0
  64. package/dist/baseline/producers/health.js +42 -0
  65. package/dist/baseline/producers/health.js.map +1 -0
  66. package/dist/baseline/producers/index.d.ts +164 -0
  67. package/dist/baseline/producers/index.d.ts.map +1 -0
  68. package/dist/baseline/producers/index.js +200 -0
  69. package/dist/baseline/producers/index.js.map +1 -0
  70. package/dist/baseline/producers/licenses.d.ts +23 -0
  71. package/dist/baseline/producers/licenses.d.ts.map +1 -0
  72. package/dist/baseline/producers/licenses.js +46 -0
  73. package/dist/baseline/producers/licenses.js.map +1 -0
  74. package/dist/baseline/producers/quality.d.ts +39 -0
  75. package/dist/baseline/producers/quality.d.ts.map +1 -0
  76. package/dist/baseline/producers/quality.js +84 -0
  77. package/dist/baseline/producers/quality.js.map +1 -0
  78. package/dist/baseline/producers/secret-hmac.d.ts +45 -0
  79. package/dist/baseline/producers/secret-hmac.d.ts.map +1 -0
  80. package/dist/baseline/producers/secret-hmac.js +70 -0
  81. package/dist/baseline/producers/secret-hmac.js.map +1 -0
  82. package/dist/baseline/producers/security.d.ts +59 -0
  83. package/dist/baseline/producers/security.d.ts.map +1 -0
  84. package/dist/baseline/producers/security.js +135 -0
  85. package/dist/baseline/producers/security.js.map +1 -0
  86. package/dist/baseline/producers/tests.d.ts +36 -0
  87. package/dist/baseline/producers/tests.d.ts.map +1 -0
  88. package/dist/baseline/producers/tests.js +69 -0
  89. package/dist/baseline/producers/tests.js.map +1 -0
  90. package/dist/baseline/salt.d.ts +45 -0
  91. package/dist/baseline/salt.d.ts.map +1 -0
  92. package/dist/baseline/salt.js +113 -0
  93. package/dist/baseline/salt.js.map +1 -0
  94. package/dist/baseline/show.d.ts +79 -0
  95. package/dist/baseline/show.d.ts.map +1 -0
  96. package/dist/baseline/show.js +233 -0
  97. package/dist/baseline/show.js.map +1 -0
  98. package/dist/baseline/types.d.ts +482 -0
  99. package/dist/baseline/types.d.ts.map +1 -0
  100. package/dist/baseline/types.js +53 -0
  101. package/dist/baseline/types.js.map +1 -0
  102. package/dist/cli.d.ts.map +1 -1
  103. package/dist/cli.js +398 -82
  104. package/dist/cli.js.map +1 -1
  105. package/dist/constants.d.ts.map +1 -1
  106. package/dist/constants.js +0 -4
  107. package/dist/constants.js.map +1 -1
  108. package/dist/doctor.d.ts.map +1 -1
  109. package/dist/doctor.js +39 -35
  110. package/dist/doctor.js.map +1 -1
  111. package/dist/fail-on.d.ts +84 -0
  112. package/dist/fail-on.d.ts.map +1 -0
  113. package/dist/fail-on.js +128 -0
  114. package/dist/fail-on.js.map +1 -0
  115. package/dist/generator.d.ts +1 -1
  116. package/dist/generator.d.ts.map +1 -1
  117. package/dist/generator.js +81 -274
  118. package/dist/generator.js.map +1 -1
  119. package/dist/hooks-cli.d.ts +20 -0
  120. package/dist/hooks-cli.d.ts.map +1 -0
  121. package/dist/hooks-cli.js +145 -0
  122. package/dist/hooks-cli.js.map +1 -0
  123. package/dist/languages/csharp.d.ts.map +1 -1
  124. package/dist/languages/csharp.js +4 -9
  125. package/dist/languages/csharp.js.map +1 -1
  126. package/dist/languages/go.d.ts.map +1 -1
  127. package/dist/languages/go.js +3 -14
  128. package/dist/languages/go.js.map +1 -1
  129. package/dist/languages/index.d.ts +19 -1
  130. package/dist/languages/index.d.ts.map +1 -1
  131. package/dist/languages/index.js +32 -0
  132. package/dist/languages/index.js.map +1 -1
  133. package/dist/languages/java.d.ts.map +1 -1
  134. package/dist/languages/java.js +4 -6
  135. package/dist/languages/java.js.map +1 -1
  136. package/dist/languages/kotlin.d.ts.map +1 -1
  137. package/dist/languages/kotlin.js +9 -11
  138. package/dist/languages/kotlin.js.map +1 -1
  139. package/dist/languages/python.d.ts.map +1 -1
  140. package/dist/languages/python.js +4 -15
  141. package/dist/languages/python.js.map +1 -1
  142. package/dist/languages/ruby.d.ts.map +1 -1
  143. package/dist/languages/ruby.js +4 -6
  144. package/dist/languages/ruby.js.map +1 -1
  145. package/dist/languages/rust.d.ts.map +1 -1
  146. package/dist/languages/rust.js +4 -4
  147. package/dist/languages/rust.js.map +1 -1
  148. package/dist/languages/types.d.ts +29 -28
  149. package/dist/languages/types.d.ts.map +1 -1
  150. package/dist/languages/typescript.d.ts.map +1 -1
  151. package/dist/languages/typescript.js +31 -4
  152. package/dist/languages/typescript.js.map +1 -1
  153. package/dist/lib.d.ts +2 -3
  154. package/dist/lib.d.ts.map +1 -1
  155. package/dist/lib.js +3 -6
  156. package/dist/lib.js.map +1 -1
  157. package/dist/prompts.d.ts.map +1 -1
  158. package/dist/prompts.js +0 -10
  159. package/dist/prompts.js.map +1 -1
  160. package/dist/report-schema.d.ts +42 -0
  161. package/dist/report-schema.d.ts.map +1 -0
  162. package/dist/report-schema.js +54 -0
  163. package/dist/report-schema.js.map +1 -0
  164. package/dist/ship-installers.d.ts +112 -0
  165. package/dist/ship-installers.d.ts.map +1 -0
  166. package/dist/ship-installers.js +530 -0
  167. package/dist/ship-installers.js.map +1 -0
  168. package/dist/tools-cli.d.ts.map +1 -1
  169. package/dist/tools-cli.js +45 -9
  170. package/dist/tools-cli.js.map +1 -1
  171. package/dist/types.d.ts +0 -4
  172. package/dist/types.d.ts.map +1 -1
  173. package/dist/update.d.ts.map +1 -1
  174. package/dist/update.js +0 -4
  175. package/dist/update.js.map +1 -1
  176. package/package.json +17 -11
  177. package/templates/.claude/skills/dxkit-action/SKILL.md +150 -0
  178. package/templates/.claude/skills/dxkit-config/SKILL.md +124 -0
  179. package/templates/.claude/skills/dxkit-hooks/SKILL.md +109 -0
  180. package/templates/.claude/skills/dxkit-init/SKILL.md +93 -0
  181. package/templates/.claude/skills/dxkit-learn/SKILL.md +84 -0
  182. package/templates/.claude/skills/dxkit-reports/SKILL.md +111 -0
  183. package/templates/.devcontainer/devcontainer.json +55 -0
  184. package/templates/.devcontainer/install-agent-clis.sh +42 -0
  185. package/templates/.devcontainer/post-create.sh +81 -0
  186. package/templates/.githooks/pre-commit +55 -0
  187. package/templates/.githooks/pre-push +63 -0
  188. package/templates/.github/workflows/dxkit-baseline-refresh.yml +78 -0
  189. package/templates/.github/workflows/dxkit-guardrails.yml +98 -0
  190. package/templates/AGENTS.md.template +137 -0
  191. package/templates/CLAUDE.md.template +16 -245
  192. package/dist/codebase-scanner.d.ts +0 -36
  193. package/dist/codebase-scanner.d.ts.map +0 -1
  194. package/dist/codebase-scanner.js +0 -688
  195. package/dist/codebase-scanner.js.map +0 -1
  196. package/dist/project-yaml.d.ts +0 -13
  197. package/dist/project-yaml.d.ts.map +0 -1
  198. package/dist/project-yaml.js +0 -188
  199. package/dist/project-yaml.js.map +0 -1
  200. package/templates/.ai/README.md +0 -117
  201. package/templates/.ai/prompts/execution-prompt.md +0 -9
  202. package/templates/.ai/prompts/planning-prompt.md +0 -18
  203. package/templates/.ai/prompts/session-end-template.md +0 -182
  204. package/templates/.ai/prompts/session-end.md +0 -132
  205. package/templates/.ai/prompts/session-start.md +0 -109
  206. package/templates/.ai/prompts/step-by-step.md +0 -113
  207. package/templates/.ai/sessions/.gitkeep +0 -0
  208. package/templates/.claude/agents/doc-writer.md +0 -107
  209. package/templates/.claude/agents/knowledge-bot.md +0 -64
  210. package/templates/.claude/agents/onboarding.md +0 -61
  211. package/templates/.claude/agents/quality-reviewer.md +0 -85
  212. package/templates/.claude/agents-available/code-reviewer.md +0 -29
  213. package/templates/.claude/agents-available/codebase-explorer.md +0 -100
  214. package/templates/.claude/agents-available/dashboard-builder.md +0 -433
  215. package/templates/.claude/agents-available/debugger.md +0 -29
  216. package/templates/.claude/agents-available/dependency-mapper.md +0 -80
  217. package/templates/.claude/agents-available/dev-report.md +0 -108
  218. package/templates/.claude/agents-available/doc-writer.md +0 -107
  219. package/templates/.claude/agents-available/feature-builder.md +0 -163
  220. package/templates/.claude/agents-available/feature-planner.md +0 -185
  221. package/templates/.claude/agents-available/health-auditor.md +0 -95
  222. package/templates/.claude/agents-available/hooks-configurator.md +0 -211
  223. package/templates/.claude/agents-available/knowledge-bot.md +0 -62
  224. package/templates/.claude/agents-available/plan-executor.md +0 -133
  225. package/templates/.claude/agents-available/strategic-planner.md +0 -141
  226. package/templates/.claude/agents-available/test-gap-finder.md +0 -67
  227. package/templates/.claude/agents-available/test-writer.md +0 -34
  228. package/templates/.claude/agents-available/vulnerability-scanner.md +0 -173
  229. package/templates/.claude/commands/ask.md +0 -7
  230. package/templates/.claude/commands/build-feature.md +0 -26
  231. package/templates/.claude/commands/build.md.template +0 -30
  232. package/templates/.claude/commands/check.md.template +0 -43
  233. package/templates/.claude/commands/dashboard.md +0 -28
  234. package/templates/.claude/commands/deps.md +0 -15
  235. package/templates/.claude/commands/dev-report.md +0 -50
  236. package/templates/.claude/commands/docs.md +0 -21
  237. package/templates/.claude/commands/doctor.md +0 -21
  238. package/templates/.claude/commands/enable-agent.md +0 -12
  239. package/templates/.claude/commands/execute-plan.md +0 -25
  240. package/templates/.claude/commands/explore-codebase.md +0 -12
  241. package/templates/.claude/commands/export-pdf.md +0 -30
  242. package/templates/.claude/commands/feature.md +0 -25
  243. package/templates/.claude/commands/fix-issue.md +0 -12
  244. package/templates/.claude/commands/fix.md.template +0 -32
  245. package/templates/.claude/commands/health.md +0 -58
  246. package/templates/.claude/commands/help.md +0 -36
  247. package/templates/.claude/commands/learn.md +0 -48
  248. package/templates/.claude/commands/onboarding.md +0 -21
  249. package/templates/.claude/commands/plan.md +0 -20
  250. package/templates/.claude/commands/quality.md.template +0 -65
  251. package/templates/.claude/commands/session-end.md +0 -40
  252. package/templates/.claude/commands/session-start.md +0 -30
  253. package/templates/.claude/commands/setup-hooks.md +0 -18
  254. package/templates/.claude/commands/setup-pr-review.md +0 -72
  255. package/templates/.claude/commands/stealth-mode.md +0 -17
  256. package/templates/.claude/commands/test-gaps.md +0 -49
  257. package/templates/.claude/commands/test.md.template +0 -40
  258. package/templates/.claude/commands/vulnerabilities.md +0 -49
  259. package/templates/.claude/skills/build/SKILL.md.template +0 -98
  260. package/templates/.claude/skills/deploy/SKILL.md.template +0 -131
  261. package/templates/.claude/skills/deploy/references/gotchas.md +0 -5
  262. package/templates/.claude/skills/doctor/SKILL.md +0 -54
  263. package/templates/.claude/skills/gcloud/SKILL.md +0 -66
  264. package/templates/.claude/skills/gcloud/references/gotchas.md +0 -5
  265. package/templates/.claude/skills/learned/SKILL.md +0 -55
  266. package/templates/.claude/skills/learned/references/conventions.md +0 -11
  267. package/templates/.claude/skills/learned/references/deny-recommendations.md +0 -18
  268. package/templates/.claude/skills/learned/references/gotchas.md +0 -11
  269. package/templates/.claude/skills/pulumi/SKILL.md +0 -73
  270. package/templates/.claude/skills/quality/SKILL.md.template +0 -108
  271. package/templates/.claude/skills/quality/references/gotchas.md +0 -5
  272. package/templates/.claude/skills/review/SKILL.md.template +0 -73
  273. package/templates/.claude/skills/scaffold/SKILL.md.template +0 -123
  274. package/templates/.claude/skills/secrets/SKILL.md +0 -52
  275. package/templates/.claude/skills/session/SKILL.md +0 -43
  276. package/templates/.claude/skills/test/SKILL.md.template +0 -122
  277. package/templates/.claude/skills/test/references/gotchas.md +0 -5
  278. package/templates/.devcontainer/Dockerfile.dev.template +0 -89
  279. package/templates/.devcontainer/devcontainer.json.template +0 -184
  280. package/templates/.devcontainer/docker-compose.yml.template +0 -105
  281. package/templates/.devcontainer/init-scripts/01-init.sql.template +0 -12
  282. package/templates/.devcontainer/post-create.sh.template +0 -298
  283. package/templates/.github/workflows/ci.yml.template +0 -399
  284. package/templates/.github/workflows/quality.yml.template +0 -376
  285. package/templates/.pre-commit-config.yaml.template +0 -106
  286. package/templates/.project/config/edit_config.py +0 -275
  287. package/templates/.project/config/project_config.py +0 -894
  288. package/templates/.project/scripts/codegen/generate-all.sh +0 -20
  289. package/templates/.project/scripts/codegen/validate-all.sh +0 -17
  290. package/templates/.project/scripts/docs/generate-all.sh +0 -30
  291. package/templates/.project/scripts/docs/serve.sh +0 -20
  292. package/templates/.project/scripts/quality/fix-all.sh +0 -138
  293. package/templates/.project/scripts/quality/lint-go.sh +0 -34
  294. package/templates/.project/scripts/quality/lint-python.sh +0 -54
  295. package/templates/.project/scripts/quality/run-all.sh +0 -497
  296. package/templates/.project/scripts/session/commit.sh +0 -70
  297. package/templates/.project/scripts/session/create-pr.sh +0 -165
  298. package/templates/.project/scripts/session/end.sh +0 -207
  299. package/templates/.project/scripts/session/start.sh +0 -233
  300. package/templates/.project/scripts/setup/doctor.sh +0 -404
  301. package/templates/.project/scripts/setup/interactive-setup.sh +0 -585
  302. package/templates/.project/scripts/sync/sync-template.sh +0 -328
  303. package/templates/.project/scripts/test/run-all.sh +0 -179
  304. package/templates/.project/scripts/test/run-quick.sh +0 -25
  305. package/templates/Makefile +0 -514
  306. package/templates/config/versions.yaml +0 -57
  307. package/templates/configs/go/.golangci.yml.template +0 -172
  308. package/templates/configs/go/go.mod.template +0 -15
  309. package/templates/configs/java/README.md +0 -6
  310. package/templates/configs/kotlin/README.md +0 -6
  311. package/templates/configs/node/package.json.template +0 -67
  312. package/templates/configs/node/tsconfig.json.template +0 -53
  313. package/templates/configs/python/pyproject.toml.template +0 -92
  314. package/templates/configs/python/pytest.ini.template +0 -64
  315. package/templates/configs/python/ruff.toml.template +0 -79
  316. package/templates/configs/ruby/README.md +0 -6
  317. package/templates/configs/rust/Cargo.toml.template +0 -51
  318. package/templates/configs/shared/.editorconfig +0 -67
  319. package/templates/scripts/validate-templates.sh +0 -449
@@ -1 +0,0 @@
1
- {"version":3,"file":"codebase-scanner.js","sourceRoot":"","sources":["../src/codebase-scanner.ts"],"names":[],"mappings":"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"}
@@ -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"}
@@ -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
@@ -1 +0,0 @@
1
- {"version":3,"file":"project-yaml.js","sourceRoot":"","sources":["../src/project-yaml.ts"],"names":[],"mappings":"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"}
@@ -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.
@@ -1,9 +0,0 @@
1
- Great plan! Let's proceed step by step.
2
-
3
- Before implementing each component:
4
- 1. Tell me what you're about to do
5
- 2. Explain WHY we're doing it this way
6
- 3. Explain HOW it will work
7
- 4. Then implement it
8
-
9
- Let's start with {FIRST_COMPONENT_FROM_PLAN}.
@@ -1,18 +0,0 @@
1
- I want to {YOUR_GOAL_HERE}
2
- {IF_CONTINUING_FROM_CHECKPOINT}
3
- I'm continuing from a previous session. Please read:
4
- {CHECKPOINT_PATH}
5
-
6
- Summarize what was accomplished and what's left to do.
7
- {END_IF}
8
- Before we start coding, let's plan this session:
9
-
10
- 1. What files will we need to create/modify?
11
- 2. What are the key components/functions?
12
- 3. What dependencies or external services do we need?
13
- 4. What tests should we write?
14
- 5. Can we complete this in one session (within context window)?
15
- 6. Does this align with our architecture?
16
- 7. Are there relevant gotchas or conventions in `.claude/skills/` to be aware of?
17
-
18
- Once we have a solid plan that fits in one session, I'll ask you to proceed.
@@ -1,182 +0,0 @@
1
- # Session End - Create Checkpoint
2
-
3
- Please create a comprehensive session checkpoint using your full conversation context.
4
-
5
- ## Session Information
6
- - **Developer**: {DEVELOPER}
7
- - **Date**: {DATE}
8
- - **Session Number**: {SESSION_NUM}
9
- - **Checkpoint File**: `{CHECKPOINT_FILE}`
10
-
11
- ## Your Task
12
-
13
- You have the complete context of this development session. Create a comprehensive checkpoint.
14
-
15
- ### Step 1: Gather Information from User
16
-
17
- Ask me for any details you need to complete the checkpoint:
18
- - **Session duration**: Estimate from our conversation length, or ask me
19
- - **Blockers**: Any issues or concerns for next session?
20
- - **Completeness**: Did we finish what we planned, or is work in progress?
21
- - **Anything unclear**: Any decisions or context you're unsure about?
22
-
23
- ### Step 2: Create Checkpoint File
24
-
25
- Create the checkpoint at: `{CHECKPOINT_FILE}`
26
-
27
- Use the template structure from: `.ai/templates/session-checkpoint-template.md`
28
-
29
- Fill out **all sections thoroughly** using:
30
- - ✅ **Our conversation history** - You know everything we discussed and built
31
- - ✅ **Files you touched** - You know every file created/modified
32
- - ✅ **Decisions we made** - You remember the reasoning and trade-offs
33
- - ✅ **Plans we made** - You know what's next
34
-
35
- ## What to Document
36
-
37
- ### Accomplished ✅
38
- List **specific** accomplishments (not vague):
39
- - ❌ Bad: "Worked on the client"
40
- - ✅ Good: "Implemented PolygonClient with 3 endpoints (get_quote, get_bars, get_options), added 15 unit tests, all passing"
41
-
42
- ### Files Created/Modified
43
- Every file with description:
44
- - Created files with purpose
45
- - Modified files with what changed
46
-
47
- ### Key Decisions
48
- Major decisions with reasoning:
49
- - What we decided
50
- - Why we chose this approach
51
- - Alternatives we considered
52
- - Trade-offs we accepted
53
-
54
- ### Implementation Details
55
- How things work:
56
- - Architecture/patterns used
57
- - Key technical details
58
- - Where to find important logic
59
-
60
- ### Testing Status
61
- - Tests added/updated
62
- - Coverage
63
- - Passing status
64
- - Manual testing done
65
-
66
- ### Next Session
67
- **Clear, actionable steps** for next session:
68
- - Specific enough to start immediately
69
- - Ordered by priority
70
- - With enough context
71
-
72
- ### Context for AI
73
- Detailed context for next session's AI agent:
74
- - What we just completed
75
- - Current state of the codebase
76
- - What to do next and why
77
- - Key facts to remember
78
-
79
- ### Blockers / Considerations
80
- - Any blockers needing resolution
81
- - Technical debt taken
82
- - Things to watch
83
- - Dependencies
84
-
85
- ## Recent Git Activity
86
-
87
- {GIT_COMMITS}
88
-
89
- {GIT_CHANGES}
90
-
91
- ---
92
-
93
- ## Guidelines
94
-
95
- - **Be specific**: Include file paths, line counts, exact accomplishments
96
- - **Explain decisions**: Don't just say what, say why
97
- - **Actionable next steps**: Clear enough that anyone can continue
98
- - **Rich context**: Next AI agent should seamlessly pick up where we left off
99
-
100
- ---
101
-
102
- ## Skill Evolution
103
-
104
- After creating the checkpoint, review this session for learnings worth capturing:
105
-
106
- ### Gotchas
107
- If you encountered unexpected behaviors, edge cases, or failures:
108
- - Append to `.claude/skills/learned/references/gotchas.md` (general)
109
- - Or to `.claude/skills/<area>/references/gotchas.md` (area-specific: quality, test, deploy, gcloud, etc.)
110
-
111
- Format:
112
- ```
113
- ## {DATE} - {Category} / {Short Title}
114
- {Description of the issue}
115
- **Resolution:** {How it was resolved}
116
- ```
117
-
118
- ### Conventions
119
- If new team conventions or patterns were established:
120
- - Append to `.claude/skills/learned/references/conventions.md`
121
-
122
- Format:
123
- ```
124
- ## {Category} - {Convention Name}
125
- {Description}
126
- **Rationale:** {Why this convention was adopted}
127
- ```
128
-
129
- ### New Skills
130
- If this session introduced a significant new domain, workflow, or integration that doesn't fit any existing skill, create a new skill:
131
-
132
- 1. Create directory: `.claude/skills/<skill-name>/`
133
- 2. Create `SKILL.md` with proper frontmatter:
134
- ```
135
- ---
136
- name: <skill-name>
137
- description: <what it does and when to use it — max 1024 chars>
138
- ---
139
-
140
- # <Skill Title>
141
-
142
- <Instructions, commands, patterns, gotchas>
143
- ```
144
- 3. Optionally add `references/gotchas.md` for area-specific gotchas
145
-
146
- **When to create a new skill vs. updating an existing one:**
147
- - New skill: the topic is distinct enough that it would clutter an existing skill (e.g., a specific API client, a migration workflow, a caching layer)
148
- - Update existing: the learning fits naturally into an existing skill's domain (e.g., a new Python lint gotcha → quality skill)
149
-
150
- **Naming rules** (per Agent Skills spec):
151
- - Lowercase letters, numbers, and hyphens only
152
- - No consecutive hyphens, don't start/end with hyphen
153
- - Directory name must match the `name` field in frontmatter
154
-
155
- ### Deny Rule Recommendations
156
- If you encountered or nearly executed a dangerous command that should be permanently blocked:
157
- - Append to `.claude/skills/learned/references/deny-recommendations.md`
158
-
159
- Format:
160
- ```
161
- ## {DATE} - Rule
162
- `DenyPattern` — reason this should be blocked
163
- **Context:** what happened that surfaced this need
164
- ```
165
-
166
- A developer should periodically review this file and promote entries to `.claude/settings.json` deny list. Claude cannot modify settings.json directly (security boundary).
167
-
168
- ### Guidelines for Skill Evolution
169
- - Only add genuinely useful learnings (not obvious things)
170
- - Be specific: include file paths, error messages, exact symptoms
171
- - Focus on things that would save time if known in advance
172
- - Append-only for gotchas/conventions — never remove or edit existing entries
173
- - **NEVER include secret values, tokens, passwords, or API keys in any skill file**
174
-
175
- ---
176
-
177
- **Action**: Ask me any clarifying questions you need, then create the checkpoint file and update skills.
178
-
179
- Make it thorough enough that:
180
- 1. Another developer can understand what was built
181
- 2. Next session's AI agent can seamlessly continue
182
- 3. We can remember context weeks/months from now