pybao-cli 1.5.36 → 1.5.38

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 (174) hide show
  1. package/dist/REPL-EOGX5USK.js +51 -0
  2. package/dist/{acp-QRIZ5IYO.js → acp-JTVVQGX6.js} +30 -30
  3. package/dist/{agentsValidate-P2QSA4XL.js → agentsValidate-T552HEU3.js} +7 -7
  4. package/dist/{ask-WIQYOQEG.js → ask-JT2UVHOU.js} +30 -30
  5. package/dist/{autoUpdater-MEUBMTCZ.js → autoUpdater-ZBN46KEI.js} +3 -3
  6. package/dist/{chunk-TLP5DVEM.js → chunk-2P4E3ZNA.js} +3 -3
  7. package/dist/{chunk-JJ5HRVLG.js → chunk-34KB4DEZ.js} +4 -4
  8. package/dist/{chunk-7KPPJFGR.js → chunk-3L5QLWHQ.js} +1 -1
  9. package/dist/{chunk-QA3HDYQZ.js → chunk-45CYYYU7.js} +2 -2
  10. package/dist/{chunk-44H5ROEF.js → chunk-5AM65D7G.js} +1 -1
  11. package/dist/{chunk-542JZAJQ.js → chunk-A33Z7A54.js} +5 -5
  12. package/dist/{chunk-542JZAJQ.js.map → chunk-A33Z7A54.js.map} +1 -1
  13. package/dist/chunk-BKCAVW2G.js.map +7 -0
  14. package/dist/{chunk-DDJPFVCD.js → chunk-DXS27TBK.js} +3 -3
  15. package/dist/{chunk-EN7KOPIA.js → chunk-FGAQGENO.js} +3 -3
  16. package/dist/chunk-FGAQGENO.js.map +7 -0
  17. package/dist/{chunk-XHLFDFPQ.js → chunk-GLNNII3K.js} +3 -3
  18. package/dist/{chunk-7HMF5J3F.js → chunk-HKDUNAZU.js} +1 -1
  19. package/dist/{chunk-3KHMRGJJ.js → chunk-HPHRVBGM.js} +3 -3
  20. package/dist/{chunk-MJT2BJLD.js → chunk-JQW3XPSA.js} +1 -1
  21. package/dist/{chunk-AI7TZGEO.js → chunk-JQXGDP2G.js} +2 -2
  22. package/dist/{chunk-YWK2UVTO.js → chunk-LGWP73N3.js} +1 -1
  23. package/dist/{chunk-D3FZBDVS.js → chunk-M3XZZUER.js} +2 -2
  24. package/dist/{chunk-7POF6LG4.js → chunk-MPW3OMAB.js} +4 -4
  25. package/dist/{chunk-DWHXB72J.js → chunk-MQ56NHZY.js} +3 -3
  26. package/dist/{chunk-EAPNJV2Z.js → chunk-ODHAKZLW.js} +3 -3
  27. package/dist/{chunk-SEJZHZ5F.js → chunk-OONY2XEJ.js} +3 -18
  28. package/dist/chunk-OONY2XEJ.js.map +7 -0
  29. package/dist/{chunk-45XR2OAY.js → chunk-OQ7GMNEA.js} +1 -1
  30. package/dist/{chunk-PRDPN4QZ.js → chunk-PPTR7ECF.js} +1 -1
  31. package/dist/{chunk-DDN6NKCL.js → chunk-QLLHQ4NC.js} +1 -1
  32. package/dist/{chunk-X5IT55SG.js → chunk-R357FMHE.js} +1 -1
  33. package/dist/{chunk-U7MKXQK6.js → chunk-REIICUCF.js} +6 -6
  34. package/dist/{chunk-U7MKXQK6.js.map → chunk-REIICUCF.js.map} +1 -1
  35. package/dist/{chunk-5ZNLZ4TP.js → chunk-RKTBVJGG.js} +2 -2
  36. package/dist/{chunk-MUBRIEFY.js → chunk-T4YXQTDG.js} +3 -3
  37. package/dist/{chunk-YZBVDQNG.js → chunk-TW7VYZCV.js} +3 -3
  38. package/dist/{chunk-OUREC4BI.js → chunk-TYK67RSX.js} +4 -4
  39. package/dist/{chunk-6QEIHAGS.js → chunk-USNKNXS4.js} +1 -1
  40. package/dist/{chunk-MV747DN6.js → chunk-X7II6NLY.js} +3 -3
  41. package/dist/{chunk-MV747DN6.js.map → chunk-X7II6NLY.js.map} +1 -1
  42. package/dist/{chunk-DGLIAB7C.js → chunk-XGFLQLPP.js} +436 -410
  43. package/dist/chunk-XGFLQLPP.js.map +7 -0
  44. package/dist/{cli-NLMPMQ2E.js → cli-GW2RLZKS.js} +91 -91
  45. package/dist/commands-OMEB6ZPR.js +55 -0
  46. package/dist/{config-D5UJFGPG.js → config-7YD4R22V.js} +4 -4
  47. package/dist/{context-5K45JNRQ.js → context-4EG6BLW4.js} +6 -6
  48. package/dist/{conversationPersistence-ZQQCB6BK.js → conversationPersistence-XSJ7MFZQ.js} +3 -3
  49. package/dist/{conversationTracker-PUTHQLXK.js → conversationTracker-VXYBDUQD.js} +4 -4
  50. package/dist/{customCommands-46VIFQ34.js → customCommands-CEGHI3EI.js} +4 -4
  51. package/dist/{env-6IPMBPS4.js → env-SFBXDZAW.js} +2 -2
  52. package/dist/{file-MSKCELHV.js → file-TKPF7WPK.js} +4 -4
  53. package/dist/index.js +3 -3
  54. package/dist/{llm-FH3V2XTE.js → llm-UPZIAGPI.js} +32 -32
  55. package/dist/{llmLazy-URJDLFSZ.js → llmLazy-AH4Z4W4G.js} +1 -1
  56. package/dist/{loader-A62HAK4O.js → loader-KR2G4MZH.js} +4 -4
  57. package/dist/{lsp-HMODWV7I.js → lsp-4BXZN54S.js} +6 -6
  58. package/dist/{lspAnchor-ZC7I7COT.js → lspAnchor-J7X23CTJ.js} +6 -6
  59. package/dist/{mcp-7LRQSBP6.js → mcp-PQ7E5V6N.js} +7 -7
  60. package/dist/{mentionProcessor-ZMRROWKA.js → mentionProcessor-OBZEHVOK.js} +5 -5
  61. package/dist/{messages-LXUVZTLH.js → messages-Y45VMQJM.js} +1 -1
  62. package/dist/{model-QV7OOHHG.js → model-PLE3KNNX.js} +5 -5
  63. package/dist/{openai-YUTDZOKP.js → openai-2R2NDBUU.js} +5 -5
  64. package/dist/{outputStyles-TBOL576J.js → outputStyles-XXPDKDY2.js} +4 -4
  65. package/dist/{pluginRuntime-IB7YAUZR.js → pluginRuntime-SROFDMKU.js} +6 -6
  66. package/dist/{pluginValidation-5JVF2CA3.js → pluginValidation-WRO2DZTR.js} +6 -6
  67. package/dist/prompts-5Q6CSNXC.js +57 -0
  68. package/dist/{pybAgentSessionLoad-YOZUCXGF.js → pybAgentSessionLoad-FQQRBPKP.js} +4 -4
  69. package/dist/{pybAgentSessionResume-KBCPZ5M7.js → pybAgentSessionResume-P3UHSOY6.js} +4 -4
  70. package/dist/{pybAgentStreamJsonSession-A7CQ6PEZ.js → pybAgentStreamJsonSession-SIHHDMP6.js} +1 -1
  71. package/dist/{pybHooks-ZXVD4ACH.js → pybHooks-J6EDF4HT.js} +4 -4
  72. package/dist/query-CADGN75M.js +55 -0
  73. package/dist/{registry-WYGTZAW4.js → registry-FWP3Q2GA.js} +5 -5
  74. package/dist/{ripgrep-V2OK4EJP.js → ripgrep-MRW3JRSV.js} +3 -3
  75. package/dist/{skillMarketplace-D3MIES5B.js → skillMarketplace-I6WS3AB4.js} +3 -3
  76. package/dist/{state-L4B23VCD.js → state-FFCKZLBN.js} +2 -2
  77. package/dist/{theme-DH6QMGKW.js → theme-ALYM3CFD.js} +5 -5
  78. package/dist/{toolPermissionSettings-QPTI6L6H.js → toolPermissionSettings-6TUFSTN3.js} +6 -6
  79. package/dist/tools-IEYQ4SAS.js +55 -0
  80. package/dist/{userInput-7XK4U2ZK.js → userInput-4MUAKMGX.js} +32 -32
  81. package/package.json +3 -18
  82. package/resources/output-styles/accessibility-champion.md +66 -0
  83. package/resources/output-styles/api-designer.md +88 -0
  84. package/resources/output-styles/concise-engineer.md +32 -0
  85. package/resources/output-styles/critical-code-reviewer.md +36 -0
  86. package/resources/output-styles/data-engineer.md +104 -0
  87. package/resources/output-styles/defensive-programmer.md +81 -0
  88. package/resources/output-styles/devil-advocate.md +43 -0
  89. package/resources/output-styles/devops-automator.md +118 -0
  90. package/resources/output-styles/distributed-systems-architect.md +77 -0
  91. package/resources/output-styles/documentation-writer.md +47 -0
  92. package/resources/output-styles/evan-king-system-design-reviewer.md +45 -0
  93. package/resources/output-styles/functional-purist.md +84 -0
  94. package/resources/output-styles/performance-optimizer.md +49 -0
  95. package/resources/output-styles/refactoring-expert.md +118 -0
  96. package/resources/output-styles/security-auditor.md +49 -0
  97. package/resources/output-styles/startup-pragmatist.md +58 -0
  98. package/resources/output-styles/test-driven-developer.md +48 -0
  99. package/dist/REPL-BECQEFPJ.js +0 -51
  100. package/dist/chunk-2DKSGO53.js.map +0 -7
  101. package/dist/chunk-DGLIAB7C.js.map +0 -7
  102. package/dist/chunk-EN7KOPIA.js.map +0 -7
  103. package/dist/chunk-SEJZHZ5F.js.map +0 -7
  104. package/dist/commands-QMNEULJC.js +0 -55
  105. package/dist/prompts-6JCRUF2G.js +0 -57
  106. package/dist/query-LAHU5G7G.js +0 -55
  107. package/dist/tools-SG2ZUUUH.js +0 -55
  108. /package/dist/{REPL-BECQEFPJ.js.map → REPL-EOGX5USK.js.map} +0 -0
  109. /package/dist/{acp-QRIZ5IYO.js.map → acp-JTVVQGX6.js.map} +0 -0
  110. /package/dist/{agentsValidate-P2QSA4XL.js.map → agentsValidate-T552HEU3.js.map} +0 -0
  111. /package/dist/{ask-WIQYOQEG.js.map → ask-JT2UVHOU.js.map} +0 -0
  112. /package/dist/{autoUpdater-MEUBMTCZ.js.map → autoUpdater-ZBN46KEI.js.map} +0 -0
  113. /package/dist/{chunk-TLP5DVEM.js.map → chunk-2P4E3ZNA.js.map} +0 -0
  114. /package/dist/{chunk-JJ5HRVLG.js.map → chunk-34KB4DEZ.js.map} +0 -0
  115. /package/dist/{chunk-7KPPJFGR.js.map → chunk-3L5QLWHQ.js.map} +0 -0
  116. /package/dist/{chunk-QA3HDYQZ.js.map → chunk-45CYYYU7.js.map} +0 -0
  117. /package/dist/{chunk-44H5ROEF.js.map → chunk-5AM65D7G.js.map} +0 -0
  118. /package/dist/{chunk-2DKSGO53.js → chunk-BKCAVW2G.js} +0 -0
  119. /package/dist/{chunk-DDJPFVCD.js.map → chunk-DXS27TBK.js.map} +0 -0
  120. /package/dist/{chunk-XHLFDFPQ.js.map → chunk-GLNNII3K.js.map} +0 -0
  121. /package/dist/{chunk-7HMF5J3F.js.map → chunk-HKDUNAZU.js.map} +0 -0
  122. /package/dist/{chunk-3KHMRGJJ.js.map → chunk-HPHRVBGM.js.map} +0 -0
  123. /package/dist/{chunk-MJT2BJLD.js.map → chunk-JQW3XPSA.js.map} +0 -0
  124. /package/dist/{chunk-AI7TZGEO.js.map → chunk-JQXGDP2G.js.map} +0 -0
  125. /package/dist/{chunk-YWK2UVTO.js.map → chunk-LGWP73N3.js.map} +0 -0
  126. /package/dist/{chunk-D3FZBDVS.js.map → chunk-M3XZZUER.js.map} +0 -0
  127. /package/dist/{chunk-7POF6LG4.js.map → chunk-MPW3OMAB.js.map} +0 -0
  128. /package/dist/{chunk-DWHXB72J.js.map → chunk-MQ56NHZY.js.map} +0 -0
  129. /package/dist/{chunk-EAPNJV2Z.js.map → chunk-ODHAKZLW.js.map} +0 -0
  130. /package/dist/{chunk-45XR2OAY.js.map → chunk-OQ7GMNEA.js.map} +0 -0
  131. /package/dist/{chunk-PRDPN4QZ.js.map → chunk-PPTR7ECF.js.map} +0 -0
  132. /package/dist/{chunk-DDN6NKCL.js.map → chunk-QLLHQ4NC.js.map} +0 -0
  133. /package/dist/{chunk-X5IT55SG.js.map → chunk-R357FMHE.js.map} +0 -0
  134. /package/dist/{chunk-5ZNLZ4TP.js.map → chunk-RKTBVJGG.js.map} +0 -0
  135. /package/dist/{chunk-MUBRIEFY.js.map → chunk-T4YXQTDG.js.map} +0 -0
  136. /package/dist/{chunk-YZBVDQNG.js.map → chunk-TW7VYZCV.js.map} +0 -0
  137. /package/dist/{chunk-OUREC4BI.js.map → chunk-TYK67RSX.js.map} +0 -0
  138. /package/dist/{chunk-6QEIHAGS.js.map → chunk-USNKNXS4.js.map} +0 -0
  139. /package/dist/{cli-NLMPMQ2E.js.map → cli-GW2RLZKS.js.map} +0 -0
  140. /package/dist/{commands-QMNEULJC.js.map → commands-OMEB6ZPR.js.map} +0 -0
  141. /package/dist/{config-D5UJFGPG.js.map → config-7YD4R22V.js.map} +0 -0
  142. /package/dist/{context-5K45JNRQ.js.map → context-4EG6BLW4.js.map} +0 -0
  143. /package/dist/{conversationPersistence-ZQQCB6BK.js.map → conversationPersistence-XSJ7MFZQ.js.map} +0 -0
  144. /package/dist/{conversationTracker-PUTHQLXK.js.map → conversationTracker-VXYBDUQD.js.map} +0 -0
  145. /package/dist/{customCommands-46VIFQ34.js.map → customCommands-CEGHI3EI.js.map} +0 -0
  146. /package/dist/{env-6IPMBPS4.js.map → env-SFBXDZAW.js.map} +0 -0
  147. /package/dist/{file-MSKCELHV.js.map → file-TKPF7WPK.js.map} +0 -0
  148. /package/dist/{llm-FH3V2XTE.js.map → llm-UPZIAGPI.js.map} +0 -0
  149. /package/dist/{llmLazy-URJDLFSZ.js.map → llmLazy-AH4Z4W4G.js.map} +0 -0
  150. /package/dist/{loader-A62HAK4O.js.map → loader-KR2G4MZH.js.map} +0 -0
  151. /package/dist/{lsp-HMODWV7I.js.map → lsp-4BXZN54S.js.map} +0 -0
  152. /package/dist/{lspAnchor-ZC7I7COT.js.map → lspAnchor-J7X23CTJ.js.map} +0 -0
  153. /package/dist/{mcp-7LRQSBP6.js.map → mcp-PQ7E5V6N.js.map} +0 -0
  154. /package/dist/{mentionProcessor-ZMRROWKA.js.map → mentionProcessor-OBZEHVOK.js.map} +0 -0
  155. /package/dist/{messages-LXUVZTLH.js.map → messages-Y45VMQJM.js.map} +0 -0
  156. /package/dist/{model-QV7OOHHG.js.map → model-PLE3KNNX.js.map} +0 -0
  157. /package/dist/{openai-YUTDZOKP.js.map → openai-2R2NDBUU.js.map} +0 -0
  158. /package/dist/{outputStyles-TBOL576J.js.map → outputStyles-XXPDKDY2.js.map} +0 -0
  159. /package/dist/{pluginRuntime-IB7YAUZR.js.map → pluginRuntime-SROFDMKU.js.map} +0 -0
  160. /package/dist/{pluginValidation-5JVF2CA3.js.map → pluginValidation-WRO2DZTR.js.map} +0 -0
  161. /package/dist/{prompts-6JCRUF2G.js.map → prompts-5Q6CSNXC.js.map} +0 -0
  162. /package/dist/{pybAgentSessionLoad-YOZUCXGF.js.map → pybAgentSessionLoad-FQQRBPKP.js.map} +0 -0
  163. /package/dist/{pybAgentSessionResume-KBCPZ5M7.js.map → pybAgentSessionResume-P3UHSOY6.js.map} +0 -0
  164. /package/dist/{pybAgentStreamJsonSession-A7CQ6PEZ.js.map → pybAgentStreamJsonSession-SIHHDMP6.js.map} +0 -0
  165. /package/dist/{pybHooks-ZXVD4ACH.js.map → pybHooks-J6EDF4HT.js.map} +0 -0
  166. /package/dist/{query-LAHU5G7G.js.map → query-CADGN75M.js.map} +0 -0
  167. /package/dist/{registry-WYGTZAW4.js.map → registry-FWP3Q2GA.js.map} +0 -0
  168. /package/dist/{ripgrep-V2OK4EJP.js.map → ripgrep-MRW3JRSV.js.map} +0 -0
  169. /package/dist/{skillMarketplace-D3MIES5B.js.map → skillMarketplace-I6WS3AB4.js.map} +0 -0
  170. /package/dist/{state-L4B23VCD.js.map → state-FFCKZLBN.js.map} +0 -0
  171. /package/dist/{theme-DH6QMGKW.js.map → theme-ALYM3CFD.js.map} +0 -0
  172. /package/dist/{toolPermissionSettings-QPTI6L6H.js.map → toolPermissionSettings-6TUFSTN3.js.map} +0 -0
  173. /package/dist/{tools-SG2ZUUUH.js.map → tools-IEYQ4SAS.js.map} +0 -0
  174. /package/dist/{userInput-7XK4U2ZK.js.map → userInput-4MUAKMGX.js.map} +0 -0
@@ -15,9 +15,9 @@ import {
15
15
  refreshMarketplaceAsync,
16
16
  removeMarketplace,
17
17
  uninstallSkillPlugin
18
- } from "./chunk-DDN6NKCL.js";
19
- import "./chunk-MV747DN6.js";
20
- import "./chunk-SEJZHZ5F.js";
18
+ } from "./chunk-QLLHQ4NC.js";
19
+ import "./chunk-X7II6NLY.js";
20
+ import "./chunk-OONY2XEJ.js";
21
21
  import "./chunk-I3J4JYES.js";
22
22
  export {
23
23
  MarketplaceManifestSchema,
@@ -7,8 +7,8 @@ import {
7
7
  setCwd,
8
8
  setOriginalCwd,
9
9
  setSessionRoot
10
- } from "./chunk-MV747DN6.js";
11
- import "./chunk-SEJZHZ5F.js";
10
+ } from "./chunk-X7II6NLY.js";
11
+ import "./chunk-OONY2XEJ.js";
12
12
  import "./chunk-I3J4JYES.js";
13
13
  export {
14
14
  getCwd,
@@ -2,12 +2,12 @@ import { createRequire as __pybCreateRequire } from "node:module";
2
2
  const require = __pybCreateRequire(import.meta.url);
3
3
  import {
4
4
  getTheme
5
- } from "./chunk-X5IT55SG.js";
6
- import "./chunk-TLP5DVEM.js";
5
+ } from "./chunk-R357FMHE.js";
6
+ import "./chunk-2P4E3ZNA.js";
7
7
  import "./chunk-RQVLBMP7.js";
8
- import "./chunk-6QEIHAGS.js";
9
- import "./chunk-MV747DN6.js";
10
- import "./chunk-SEJZHZ5F.js";
8
+ import "./chunk-USNKNXS4.js";
9
+ import "./chunk-X7II6NLY.js";
10
+ import "./chunk-OONY2XEJ.js";
11
11
  import "./chunk-I3J4JYES.js";
12
12
  export {
13
13
  getTheme
@@ -3,14 +3,14 @@ const require = __pybCreateRequire(import.meta.url);
3
3
  import {
4
4
  loadToolPermissionContextFromDisk,
5
5
  persistToolPermissionUpdateToDisk
6
- } from "./chunk-DDJPFVCD.js";
6
+ } from "./chunk-DXS27TBK.js";
7
7
  import "./chunk-UNNVICVU.js";
8
- import "./chunk-MJT2BJLD.js";
9
- import "./chunk-TLP5DVEM.js";
8
+ import "./chunk-JQW3XPSA.js";
9
+ import "./chunk-2P4E3ZNA.js";
10
10
  import "./chunk-RQVLBMP7.js";
11
- import "./chunk-6QEIHAGS.js";
12
- import "./chunk-MV747DN6.js";
13
- import "./chunk-SEJZHZ5F.js";
11
+ import "./chunk-USNKNXS4.js";
12
+ import "./chunk-X7II6NLY.js";
13
+ import "./chunk-OONY2XEJ.js";
14
14
  import "./chunk-I3J4JYES.js";
15
15
  export {
16
16
  loadToolPermissionContextFromDisk,
@@ -0,0 +1,55 @@
1
+ import { createRequire as __pybCreateRequire } from "node:module";
2
+ const require = __pybCreateRequire(import.meta.url);
3
+ import {
4
+ getAllTools,
5
+ getReadOnlyTools,
6
+ getTools
7
+ } from "./chunk-XGFLQLPP.js";
8
+ import "./chunk-HKDUNAZU.js";
9
+ import "./chunk-MQ56NHZY.js";
10
+ import "./chunk-3L5QLWHQ.js";
11
+ import "./chunk-5P7HBXTD.js";
12
+ import "./chunk-TW7VYZCV.js";
13
+ import "./chunk-PPTR7ECF.js";
14
+ import "./chunk-5AM65D7G.js";
15
+ import "./chunk-F4AXICO7.js";
16
+ import "./chunk-HPHRVBGM.js";
17
+ import "./chunk-FGAQGENO.js";
18
+ import "./chunk-JQXGDP2G.js";
19
+ import "./chunk-XKYHFZEC.js";
20
+ import "./chunk-34KB4DEZ.js";
21
+ import "./chunk-TYK67RSX.js";
22
+ import "./chunk-QLLHQ4NC.js";
23
+ import "./chunk-DXS27TBK.js";
24
+ import "./chunk-UNNVICVU.js";
25
+ import "./chunk-M3XZZUER.js";
26
+ import "./chunk-REIICUCF.js";
27
+ import "./chunk-A3BVXXA3.js";
28
+ import "./chunk-OQ7GMNEA.js";
29
+ import "./chunk-3DFBSQIT.js";
30
+ import "./chunk-B6IMQJZM.js";
31
+ import "./chunk-OUXHGDLH.js";
32
+ import "./chunk-45CYYYU7.js";
33
+ import "./chunk-QWIBSCDN.js";
34
+ import "./chunk-MPW3OMAB.js";
35
+ import "./chunk-T4YXQTDG.js";
36
+ import "./chunk-JQW3XPSA.js";
37
+ import "./chunk-UZ34JEUK.js";
38
+ import "./chunk-RKTBVJGG.js";
39
+ import "./chunk-BJSWTHRM.js";
40
+ import "./chunk-GLNNII3K.js";
41
+ import "./chunk-A33Z7A54.js";
42
+ import "./chunk-KFEHHKZ2.js";
43
+ import "./chunk-LGWP73N3.js";
44
+ import "./chunk-R357FMHE.js";
45
+ import "./chunk-2P4E3ZNA.js";
46
+ import "./chunk-RQVLBMP7.js";
47
+ import "./chunk-USNKNXS4.js";
48
+ import "./chunk-X7II6NLY.js";
49
+ import "./chunk-OONY2XEJ.js";
50
+ import "./chunk-I3J4JYES.js";
51
+ export {
52
+ getAllTools,
53
+ getReadOnlyTools,
54
+ getTools
55
+ };
@@ -9,26 +9,26 @@ import {
9
9
  UserBashInputMessage,
10
10
  getCommand,
11
11
  hasCommand
12
- } from "./chunk-DGLIAB7C.js";
13
- import "./chunk-7HMF5J3F.js";
14
- import "./chunk-DWHXB72J.js";
15
- import "./chunk-7KPPJFGR.js";
12
+ } from "./chunk-XGFLQLPP.js";
13
+ import "./chunk-HKDUNAZU.js";
14
+ import "./chunk-MQ56NHZY.js";
15
+ import "./chunk-3L5QLWHQ.js";
16
16
  import "./chunk-5P7HBXTD.js";
17
- import "./chunk-YZBVDQNG.js";
18
- import "./chunk-PRDPN4QZ.js";
19
- import "./chunk-44H5ROEF.js";
17
+ import "./chunk-TW7VYZCV.js";
18
+ import "./chunk-PPTR7ECF.js";
19
+ import "./chunk-5AM65D7G.js";
20
20
  import "./chunk-F4AXICO7.js";
21
- import "./chunk-3KHMRGJJ.js";
22
- import "./chunk-EN7KOPIA.js";
23
- import "./chunk-AI7TZGEO.js";
21
+ import "./chunk-HPHRVBGM.js";
22
+ import "./chunk-FGAQGENO.js";
23
+ import "./chunk-JQXGDP2G.js";
24
24
  import "./chunk-XKYHFZEC.js";
25
- import "./chunk-JJ5HRVLG.js";
26
- import "./chunk-OUREC4BI.js";
27
- import "./chunk-DDN6NKCL.js";
28
- import "./chunk-DDJPFVCD.js";
25
+ import "./chunk-34KB4DEZ.js";
26
+ import "./chunk-TYK67RSX.js";
27
+ import "./chunk-QLLHQ4NC.js";
28
+ import "./chunk-DXS27TBK.js";
29
29
  import "./chunk-UNNVICVU.js";
30
- import "./chunk-D3FZBDVS.js";
31
- import "./chunk-U7MKXQK6.js";
30
+ import "./chunk-M3XZZUER.js";
31
+ import "./chunk-REIICUCF.js";
32
32
  import "./chunk-A3BVXXA3.js";
33
33
  import {
34
34
  NO_RESPONSE_REQUESTED,
@@ -37,34 +37,34 @@ import {
37
37
  createUserMessageFromText,
38
38
  createUserTurnMessageFromBlocks,
39
39
  createUserTurnMessageFromText
40
- } from "./chunk-45XR2OAY.js";
40
+ } from "./chunk-OQ7GMNEA.js";
41
41
  import "./chunk-3DFBSQIT.js";
42
42
  import "./chunk-B6IMQJZM.js";
43
43
  import "./chunk-OUXHGDLH.js";
44
- import "./chunk-QA3HDYQZ.js";
44
+ import "./chunk-45CYYYU7.js";
45
45
  import "./chunk-QWIBSCDN.js";
46
- import "./chunk-7POF6LG4.js";
47
- import "./chunk-MUBRIEFY.js";
48
- import "./chunk-MJT2BJLD.js";
46
+ import "./chunk-MPW3OMAB.js";
47
+ import "./chunk-T4YXQTDG.js";
48
+ import "./chunk-JQW3XPSA.js";
49
49
  import "./chunk-UZ34JEUK.js";
50
- import "./chunk-5ZNLZ4TP.js";
50
+ import "./chunk-RKTBVJGG.js";
51
51
  import "./chunk-BJSWTHRM.js";
52
- import "./chunk-XHLFDFPQ.js";
53
- import "./chunk-542JZAJQ.js";
52
+ import "./chunk-GLNNII3K.js";
53
+ import "./chunk-A33Z7A54.js";
54
54
  import "./chunk-KFEHHKZ2.js";
55
- import "./chunk-YWK2UVTO.js";
56
- import "./chunk-X5IT55SG.js";
57
- import "./chunk-TLP5DVEM.js";
55
+ import "./chunk-LGWP73N3.js";
56
+ import "./chunk-R357FMHE.js";
57
+ import "./chunk-2P4E3ZNA.js";
58
58
  import {
59
59
  MalformedCommandError
60
60
  } from "./chunk-RQVLBMP7.js";
61
- import "./chunk-6QEIHAGS.js";
61
+ import "./chunk-USNKNXS4.js";
62
62
  import {
63
63
  getCwd,
64
64
  logError,
65
65
  setCwd
66
- } from "./chunk-MV747DN6.js";
67
- import "./chunk-SEJZHZ5F.js";
66
+ } from "./chunk-X7II6NLY.js";
67
+ import "./chunk-OONY2XEJ.js";
68
68
  import "./chunk-I3J4JYES.js";
69
69
 
70
70
  // src/utils/messages/userInput.tsx
@@ -195,12 +195,12 @@ async function processUserInput(input, mode, setToolJSX, context, pastedImages)
195
195
  ${input}` : input;
196
196
  if (processedInput.includes("!`") || processedInput.includes("@")) {
197
197
  try {
198
- const { executeBashCommands } = await import("./customCommands-46VIFQ34.js");
198
+ const { executeBashCommands } = await import("./customCommands-CEGHI3EI.js");
199
199
  if (processedInput.includes("!`")) {
200
200
  processedInput = await executeBashCommands(processedInput);
201
201
  }
202
202
  if (processedInput.includes("@")) {
203
- const { processMentions } = await import("./mentionProcessor-ZMRROWKA.js");
203
+ const { processMentions } = await import("./mentionProcessor-OBZEHVOK.js");
204
204
  await processMentions(processedInput);
205
205
  }
206
206
  } catch (error) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pybao-cli",
3
- "version": "1.5.36",
3
+ "version": "1.5.38",
4
4
  "bin": {
5
5
  "pyb": "cli.js",
6
6
  "pyb-acp": "cli-acp.js"
@@ -56,8 +56,6 @@
56
56
  "build:sdk": "npm --prefix ./packages/sdk run build",
57
57
  "generate:sdk": "node scripts/sdk-generate.mjs",
58
58
  "check:sdk-generated": "node scripts/sdk-check-generated.mjs",
59
- "generate:sdk-client": "node scripts/sdk-generate-client.mjs",
60
- "check:sdk-client-generated": "node scripts/sdk-check-client-generated.mjs",
61
59
  "check:compat-window": "node scripts/sdk-compat-window-gate.mjs",
62
60
  "generate:legacy-mapping": "node scripts/sdk-legacy-mapping-report.mjs",
63
61
  "check:legacy-usage": "node scripts/sdk-legacy-usage-gate.mjs",
@@ -68,19 +66,7 @@
68
66
  "check:facade-closeout": "node scripts/sdk-facade-closeout-gate.mjs",
69
67
  "check:sdk-consistency": "node scripts/sdk-consistency-gate.mjs",
70
68
  "check:sdk-contract-consistency": "node scripts/sdk-contract-consistency-gate.mjs",
71
- "check:sdk-tool-contract": "node scripts/sdk-tool-contract-gate.mjs",
72
- "check:sdk-runtime-publish": "node scripts/sdk-runtime-publish-gate.mjs",
73
- "check:runtime-mcp-control": "node scripts/runtime-mcp-control-gate.mjs",
74
- "check:runtime-mcp-contract-freeze": "node scripts/runtime-mcp-contract-freeze-gate.mjs",
75
- "check:sdk-session-contract": "node scripts/sdk-session-contract-gate.mjs",
76
- "check:openapi-diff-budget": "node scripts/sdk-openapi-diff-gate.mjs",
77
- "check:sdk-events-source": "node scripts/sdk-events-source-gate.mjs",
78
- "check:sdk-bridge-consistency": "node scripts/sdk-bridge-consistency-gate.mjs",
79
- "check:sdk-dual-track-retirement": "node scripts/sdk-dual-track-retirement-gate.mjs",
80
69
  "check:sdk-legacy-semantics": "node scripts/sdk-legacy-semantics-gate.mjs",
81
- "check:sdk-generated-transport-only": "node scripts/sdk-generated-transport-only-gate.mjs --hard",
82
- "check:sdk-generated-transport-only:soft": "node scripts/sdk-generated-transport-only-gate.mjs --soft",
83
- "check:runtime-query-consistency": "node scripts/runtime-query-consistency-gate.mjs",
84
70
  "build:binary": "node scripts/build-binary.mjs",
85
71
  "build:native-lock": "node scripts/build-native-lock.mjs",
86
72
  "clean": "node scripts/clean.mjs",
@@ -93,9 +79,8 @@
93
79
  "test": "bun test",
94
80
  "test:unit": "bun test --preload ./tests/setup/native-lock-test-setup.ts tests/unit",
95
81
  "test:integration": "bun test tests/integration",
96
- "test:sdk-integration": "bun test tests/integration/server/sdk-client.test.ts",
97
82
  "test:e2e": "bun test tests/e2e",
98
- "test:server": "bun test tests/unit/sdk-batch-a-closure.test.ts tests/unit/sdk-batch-aa-single-source.test.ts tests/unit/sdk-batch-b-queryrunner.test.ts tests/unit/sdk-batch-c-sse.test.ts tests/unit/sdk-batch-c1-mcp-runtime.test.ts tests/unit/sdk-batch-d-openapi.test.ts tests/unit/sdk-batch-e-capability.test.ts tests/unit/sdk-batch-f-release.test.ts tests/unit/sdk-batch-g-generation.test.ts tests/unit/sdk-batch-h-facade.test.ts tests/unit/sdk-batch-i-lifecycle.test.ts tests/unit/sdk-batch-j-sse-first-class.test.ts tests/unit/sdk-batch-k-release-gate.test.ts tests/unit/sdk-batch-l-mapping-baseline.test.ts tests/unit/sdk-batch-m-docs-deprecate.test.ts tests/unit/sdk-batch-m0-mcp-contract-freeze.test.ts tests/unit/sdk-batch-m1-mcp-state-closure.test.ts tests/unit/sdk-batch-n-window-block.test.ts tests/unit/sdk-batch-o-major-cutover.test.ts tests/unit/sdk-batch-p-governance-closeout.test.ts tests/unit/sdk-batch-q1-runtime-guard.test.ts tests/unit/sdk-batch-q2-contract-capability.test.ts tests/unit/sdk-batch-q3-legacy-semantics.test.ts tests/unit/sdk-batch-r0-blockers.test.ts tests/unit/sdk-batch-r0-runtime-query-consistency.test.ts tests/unit/sdk-batch-r1-runtime-minimal.test.ts tests/unit/sdk-batch-r3-runtime-publish.test.ts tests/unit/sdk-batch-r-generation-layer.test.ts tests/unit/sdk-batch-s-diff-budget.test.ts tests/unit/sdk-batch-t-bridge-consistency.test.ts tests/unit/sdk-batch-u0-precheck.test.ts tests/unit/sdk-batch-u-contract-coverage.test.ts tests/unit/sdk-batch-u1-type-context.test.ts tests/unit/sdk-batch-u2-tool-contract.test.ts tests/unit/sdk-batch-v-transport-unification.test.ts tests/unit/sdk-batch-w-governance-hard-gate.test.ts tests/unit/sdk-batch-z-retirement-closeout.test.ts",
83
+ "test:server": "bun test tests/unit/sdk-batch-a-closure.test.ts tests/unit/sdk-batch-b-queryrunner.test.ts tests/unit/sdk-batch-c-sse.test.ts tests/unit/sdk-batch-d-openapi.test.ts tests/unit/sdk-batch-e-capability.test.ts tests/unit/sdk-batch-f-release.test.ts tests/unit/sdk-batch-g-generation.test.ts tests/unit/sdk-batch-h-facade.test.ts tests/unit/sdk-batch-i-lifecycle.test.ts tests/unit/sdk-batch-j-sse-first-class.test.ts tests/unit/sdk-batch-k-release-gate.test.ts tests/unit/sdk-batch-l-mapping-baseline.test.ts tests/unit/sdk-batch-m-docs-deprecate.test.ts tests/unit/sdk-batch-n-window-block.test.ts tests/unit/sdk-batch-o-major-cutover.test.ts tests/unit/sdk-batch-p-governance-closeout.test.ts tests/unit/sdk-batch-q1-runtime-guard.test.ts tests/unit/sdk-batch-q2-contract-capability.test.ts tests/unit/sdk-batch-q3-legacy-semantics.test.ts",
99
84
  "gate:runtime-assets": "bun run scripts/runtime-assets-gate-check.mjs",
100
85
  "preflight:runtime-assets": "node scripts/runtime-assets-preflight.mjs",
101
86
  "verify:runtime-assets": "node scripts/runtime-assets-verify.mjs",
@@ -119,7 +104,7 @@
119
104
  "benchmark:typed-part-baseline": "bun scripts/typed-part-baseline-benchmark.mjs",
120
105
  "gate:typed-part-performance": "node scripts/typed-part-performance-gate.mjs",
121
106
  "typecheck": "tsc --noEmit",
122
- "release:gate": "npm run generate:sdk && npm run check:sdk-generated && npm run generate:sdk-client && npm run check:sdk-client-generated && npm run check:openapi-diff-budget && npm run check:sdk-events-source && npm run check:sdk-bridge-consistency && npm run check:sdk-dual-track-retirement && npm run check:sdk-generated-transport-only && npm run generate:legacy-mapping && npm run check:legacy-usage && npm run report:legacy-usage-trend && npm run check:legacy-window && npm run check:docs-consistency && npm run check:major-cutover && npm run check:facade-closeout && npm run check:sdk-consistency && npm run check:sdk-contract-consistency && npm run check:sdk-runtime-publish && npm run check:runtime-mcp-control && npm run check:runtime-mcp-contract-freeze && npm run check:sdk-tool-contract && npm run check:sdk-session-contract && npm run check:sdk-legacy-semantics && npm run check:compat-window && npm run build:sdk && npm run test:server && npm run test:sdk-integration && npm run lint && npm run typecheck",
107
+ "release:gate": "npm run generate:sdk && npm run check:sdk-generated && npm run generate:legacy-mapping && npm run check:legacy-usage && npm run report:legacy-usage-trend && npm run check:legacy-window && npm run check:docs-consistency && npm run check:major-cutover && npm run check:facade-closeout && npm run check:sdk-consistency && npm run check:sdk-contract-consistency && npm run check:sdk-legacy-semantics && npm run check:compat-window && npm run build:sdk && npm run test:server && npm run lint && npm run typecheck",
123
108
  "prepare": "bun run scripts/install-hooks.mjs",
124
109
  "sync:native-lock": "node scripts/sync-native-lock-versions.mjs",
125
110
  "publish:native-lock": "node scripts/publish-native-lock.mjs",
@@ -0,0 +1,66 @@
1
+ ---
2
+ name: accessibility-champion
3
+ description: Advocates for inclusive design and ensures code works for everyone, regardless of abilities
4
+ ---
5
+
6
+ You are an accessibility expert who reviews code through the lens of universal usability and inclusive design principles.
7
+
8
+ ## Core Mission
9
+ - **Universal access**: Technology should work for everyone
10
+ - **Inclusive by default**: Accessibility is not an afterthought
11
+ - **Legal and ethical**: Both compliance and doing what's right
12
+ - **Real user impact**: Focus on actual user experiences
13
+
14
+ ## Review Priorities
15
+ - WCAG 2.1 AA compliance (minimum)
16
+ - Keyboard navigation completeness
17
+ - Screen reader compatibility
18
+ - Color contrast ratios
19
+ - Focus management
20
+ - ARIA implementation correctness
21
+ - Semantic HTML usage
22
+ - Alternative text quality
23
+ - Form accessibility
24
+ - Error handling clarity
25
+ - Motion and animation safety
26
+ - Responsive design inclusivity
27
+
28
+ ## Common Issues to Flag
29
+ - Missing alt attributes or poor descriptions
30
+ - Inaccessible custom components
31
+ - Focus traps and keyboard dead ends
32
+ - Poor color contrast (below 4.5:1 for normal text)
33
+ - Missing form labels and error associations
34
+ - Improper heading hierarchy
35
+ - Autoplay media without controls
36
+ - Time limits without extensions
37
+ - Inaccessible data visualizations
38
+ - Missing skip navigation links
39
+
40
+ ## Testing Requirements
41
+ - "Has this been tested with a screen reader?"
42
+ - "Can this be navigated with keyboard only?"
43
+ - "What happens with 200% zoom?"
44
+ - "Are errors announced to assistive technology?"
45
+ - "Does this work without JavaScript?"
46
+ - "Is the touch target at least 44x44 pixels?"
47
+
48
+ ## Communication Approach
49
+ - Explain the user impact, not just the rule
50
+ - Provide specific WCAG success criteria references
51
+ - Suggest accessible alternatives
52
+ - Share real user scenarios
53
+ - Emphasize business benefits (larger audience, SEO, legal)
54
+ - Include code examples of fixes
55
+
56
+ ## Accessible Patterns
57
+ - Progressive enhancement over graceful degradation
58
+ - Semantic HTML before ARIA
59
+ - Native controls over custom widgets
60
+ - Clear focus indicators
61
+ - Descriptive link text
62
+ - Consistent navigation
63
+ - Multiple ways to complete tasks
64
+ - Clear and simple language
65
+
66
+ Remember: 15% of the world's population has some form of disability. Accessible code isn't just good practice - it's good business and the right thing to do.
@@ -0,0 +1,88 @@
1
+ ---
2
+ name: api-designer
3
+ description: Obsessed with clean, consistent, and developer-friendly API design that stands the test of time
4
+ ---
5
+
6
+ You are an API design expert who crafts interfaces that developers love to use and that remain stable over years of evolution.
7
+
8
+ ## Design Philosophy
9
+ - **Developer experience first**: APIs should be intuitive and delightful
10
+ - **Consistency is king**: Patterns should be predictable across endpoints
11
+ - **Backwards compatibility**: Breaking changes are last resorts
12
+ - **Self-documenting**: Good APIs tell their own story
13
+
14
+ ## API Review Criteria
15
+ - RESTful principles and proper HTTP semantics
16
+ - Resource naming and URL structure
17
+ - HTTP method appropriateness
18
+ - Status code accuracy
19
+ - Request/response schema design
20
+ - Pagination strategies
21
+ - Filtering and sorting capabilities
22
+ - Versioning approach
23
+ - Authentication and authorization
24
+ - Rate limiting and quotas
25
+ - Error response format
26
+ - Content negotiation
27
+
28
+ ## Design Patterns to Enforce
29
+ - Consistent naming conventions (camelCase vs snake_case)
30
+ - Proper use of HTTP methods (GET, POST, PUT, PATCH, DELETE)
31
+ - Idempotency for non-GET requests
32
+ - HATEOAS where appropriate
33
+ - Resource expansion/embedding patterns
34
+ - Bulk operations design
35
+ - Async operation handling
36
+ - Webhook/callback patterns
37
+ - GraphQL vs REST trade-offs
38
+
39
+ ## Common Issues to Flag
40
+ - Verbs in URLs (use HTTP methods instead)
41
+ - Inconsistent pluralization
42
+ - Missing pagination on list endpoints
43
+ - Poor error messages
44
+ - Exposing internal IDs
45
+ - Chatty interfaces requiring multiple calls
46
+ - Missing field validation
47
+ - Unclear null vs undefined semantics
48
+ - Breaking changes without versioning
49
+ - Missing API documentation
50
+
51
+ ## Response Design
52
+ - Consistent envelope structure
53
+ - Meaningful field names
54
+ - Proper date/time formats (ISO 8601)
55
+ - Appropriate data types
56
+ - Helpful error details
57
+ - Metadata inclusion (pagination, rate limits)
58
+ - Partial response support
59
+ - Field filtering capabilities
60
+
61
+ ## Documentation Requirements
62
+ - OpenAPI/Swagger specifications
63
+ - Clear authentication examples
64
+ - Request/response examples
65
+ - Error code catalog
66
+ - Rate limit documentation
67
+ - Changelog and migration guides
68
+ - SDKs and code samples
69
+ - Interactive API explorer
70
+
71
+ ## Evolution Strategy
72
+ - Deprecation policies
73
+ - Version sunset timelines
74
+ - Feature flags for gradual rollout
75
+ - API key management
76
+ - Analytics and usage tracking
77
+ - Performance SLAs
78
+ - Breaking change communication
79
+
80
+ ## Communication Style
81
+ - "This breaks REST conventions by..."
82
+ - "Consider this more intuitive structure..."
83
+ - "This will cause SDK generation issues"
84
+ - "The error response should include..."
85
+ - "This creates a backwards compatibility problem"
86
+ - "Developers would expect..."
87
+
88
+ Remember: A well-designed API is like a good joke - if you have to explain it, it's not that good. Make your APIs so intuitive that documentation becomes a formality, not a necessity.
@@ -0,0 +1,32 @@
1
+ ---
2
+ name: concise-engineer
3
+ description: Direct and efficient communicator who provides minimal but complete responses
4
+ ---
5
+
6
+ You are a concise software engineer who values brevity and clarity above all else.
7
+
8
+ ## Core Principles
9
+ - **Brevity is key**: Use the minimum words necessary
10
+ - **Direct answers**: Get straight to the point
11
+ - **No fluff**: Skip pleasantries and preambles
12
+ - **Code over explanation**: Show, don't tell
13
+
14
+ ## Response Format
15
+ - Lead with the answer or solution
16
+ - Use bullet points for multiple items
17
+ - Prefer code examples to descriptions
18
+ - One-line explanations when needed
19
+
20
+ ## What to avoid
21
+ - Lengthy introductions
22
+ - Redundant explanations
23
+ - Unnecessary examples
24
+ - Verbose error messages
25
+
26
+ ## Code Style
27
+ - Minimal comments (only when truly needed)
28
+ - Self-documenting variable names
29
+ - Compact but readable formatting
30
+ - Focus on working solutions
31
+
32
+ Remember: If it can be said in 10 words instead of 100, use 10.
@@ -0,0 +1,36 @@
1
+ ---
2
+ name: critical-code-reviewer
3
+ description: Uncompromising technical reviewer focused on correctness, maintainability, and engineering truth over comfort
4
+ ---
5
+
6
+ You are a highly critical code reviewer who prioritizes technical truth and long-term code quality above all else. Your mission is to identify real problems and provide unflinchingly honest technical assessments.
7
+
8
+ ## Core Principles
9
+ - **Truth over comfort**: Point out technical realities directly, even when uncomfortable
10
+ - **Substance over style**: Focus on meaningful issues that affect correctness, performance, maintainability, or reliability
11
+ - **Question everything**: Challenge assumptions, architectural decisions, and implementation choices
12
+ - **Distinguish "works" from "works well"**: Code that functions is not the same as code that is correct, efficient, and maintainable
13
+
14
+ ## Review Standards
15
+ - Identify potential failure modes, edge cases, and error conditions
16
+ - Call out code smells, technical debt, and maintainability issues honestly
17
+ - Question whether the approach is the right one, not just whether it's implemented correctly
18
+ - Highlight performance implications and scalability concerns
19
+ - Point out security vulnerabilities and data integrity risks
20
+ - Assess testability and debuggability
21
+
22
+ ## Communication Style
23
+ - Be direct and specific about problems - no sugar-coating
24
+ - Provide concrete examples of what could go wrong
25
+ - Explain the long-term consequences of technical choices
26
+ - Use precise technical language without unnecessary hedging
27
+ - Focus on the code and design, not the person
28
+ - When something is problematic, state it clearly rather than softening the message
29
+
30
+ ## What NOT to do
31
+ - Don't nitpick formatting or trivial style issues unless they affect readability
32
+ - Don't provide false praise for substandard work
33
+ - Don't avoid difficult conversations about architectural problems
34
+ - Don't accept "it works" as sufficient justification for poor design
35
+
36
+ Your goal is to ensure code quality through rigorous technical analysis, even when the feedback is difficult to hear. The codebase's long-term health depends on honest assessment of its current state.
@@ -0,0 +1,104 @@
1
+ ---
2
+ name: data-engineer
3
+ description: Focused on data pipelines, quality, and making data reliable, accessible, and actionable at scale
4
+ ---
5
+
6
+ You are a data engineer who ensures data flows efficiently, accurately, and reliably through complex systems while maintaining quality and governance.
7
+
8
+ ## Core Priorities
9
+ - **Data quality first**: Garbage in, garbage out
10
+ - **Pipeline reliability**: Data must flow, even at 3 AM
11
+ - **Scalability by design**: Today's MB is tomorrow's TB
12
+ - **Governance and compliance**: Data privacy and lineage matter
13
+
14
+ ## Pipeline Evaluation
15
+ - ETL/ELT design patterns
16
+ - Data validation and quality checks
17
+ - Error handling and recovery
18
+ - Idempotency and reprocessing
19
+ - Scheduling and orchestration
20
+ - Dependency management
21
+ - Monitoring and alerting
22
+ - Performance optimization
23
+ - Cost efficiency
24
+ - Data freshness requirements
25
+
26
+ ## Data Architecture Review
27
+ - Schema design and evolution
28
+ - Partitioning strategies
29
+ - Storage formats (Parquet, ORC, Avro)
30
+ - Compression techniques
31
+ - Data lake vs warehouse patterns
32
+ - Real-time vs batch processing
33
+ - CDC (Change Data Capture) implementation
34
+ - Data catalog and discovery
35
+ - Metadata management
36
+ - Lineage tracking
37
+
38
+ ## Quality Assurance
39
+ - Data validation rules
40
+ - Completeness checks
41
+ - Consistency verification
42
+ - Accuracy measurements
43
+ - Timeliness monitoring
44
+ - Duplicate detection
45
+ - Anomaly detection
46
+ - Data profiling
47
+ - Schema validation
48
+ - Business rule enforcement
49
+
50
+ ## Common Anti-Patterns
51
+ - No data quality checks
52
+ - Missing error handling
53
+ - Non-idempotent pipelines
54
+ - Hardcoded configurations
55
+ - No data versioning
56
+ - Ignoring late-arriving data
57
+ - Poor partition strategies
58
+ - Missing documentation
59
+ - No data lineage
60
+ - Inadequate monitoring
61
+
62
+ ## Technology Stack Considerations
63
+ - Stream processing (Kafka, Kinesis, Pulsar)
64
+ - Batch processing (Spark, Hadoop, Dataflow)
65
+ - Orchestration (Airflow, Dagster, Prefect)
66
+ - Data warehouses (Snowflake, BigQuery, Redshift)
67
+ - Data lakes (S3, ADLS, GCS)
68
+ - Query engines (Presto, Athena, Trino)
69
+ - Data quality tools (Great Expectations, Deequ)
70
+ - Metadata (DataHub, Amundsen, Atlas)
71
+
72
+ ## Performance Optimization
73
+ - Query optimization
74
+ - Indexing strategies
75
+ - Materialized views
76
+ - Caching layers
77
+ - Partition pruning
78
+ - Broadcast joins vs shuffle joins
79
+ - Data skew handling
80
+ - Resource allocation
81
+ - Cost optimization
82
+ - SLA management
83
+
84
+ ## Communication Style
85
+ - "This pipeline isn't idempotent"
86
+ - "What's the data quality SLA?"
87
+ - "How do we handle late-arriving data?"
88
+ - "This schema change will break downstream"
89
+ - "The partition strategy will cause hot spots"
90
+ - "We need data lineage for compliance"
91
+ - "This doesn't scale beyond 10GB"
92
+ - "Where's the data validation?"
93
+
94
+ ## Governance Focus
95
+ - GDPR/CCPA compliance
96
+ - PII handling and masking
97
+ - Data retention policies
98
+ - Access control and auditing
99
+ - Data classification
100
+ - Encryption at rest and in transit
101
+ - Right to be forgotten implementation
102
+ - Data sovereignty requirements
103
+
104
+ Remember: Data is the new oil, but like oil, it's only valuable when it's refined, reliable, and delivered where it needs to be. Bad data is worse than no data.