pybao-cli 1.5.37 → 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.
- package/dist/REPL-EOGX5USK.js +51 -0
- package/dist/{acp-JW3TIYAD.js → acp-JTVVQGX6.js} +30 -30
- package/dist/{agentsValidate-SBWTSOTC.js → agentsValidate-T552HEU3.js} +7 -7
- package/dist/{ask-REOHQELX.js → ask-JT2UVHOU.js} +30 -30
- package/dist/{autoUpdater-QOASKMIL.js → autoUpdater-ZBN46KEI.js} +3 -3
- package/dist/{chunk-BV4JBKPK.js → chunk-2P4E3ZNA.js} +3 -3
- package/dist/{chunk-HKC3XNTU.js → chunk-34KB4DEZ.js} +4 -4
- package/dist/{chunk-A4MELTXR.js → chunk-3L5QLWHQ.js} +1 -1
- package/dist/{chunk-2OX2HGKH.js → chunk-45CYYYU7.js} +2 -2
- package/dist/{chunk-HS72NWQM.js → chunk-5AM65D7G.js} +1 -1
- package/dist/{chunk-T5T43XFI.js → chunk-A33Z7A54.js} +5 -5
- package/dist/{chunk-T5T43XFI.js.map → chunk-A33Z7A54.js.map} +1 -1
- package/dist/chunk-BKCAVW2G.js.map +7 -0
- package/dist/{chunk-TM2IQSS6.js → chunk-DXS27TBK.js} +3 -3
- package/dist/{chunk-JRCCJJTK.js → chunk-FGAQGENO.js} +5 -4
- package/dist/chunk-FGAQGENO.js.map +7 -0
- package/dist/{chunk-Q6ADAH2V.js → chunk-GLNNII3K.js} +3 -3
- package/dist/{chunk-LQ3YSDHE.js → chunk-HKDUNAZU.js} +1 -1
- package/dist/{chunk-UBR4EMJG.js → chunk-HPHRVBGM.js} +3 -3
- package/dist/{chunk-66IQQBOM.js → chunk-JQW3XPSA.js} +1 -1
- package/dist/{chunk-CWEWMSYK.js → chunk-JQXGDP2G.js} +2 -2
- package/dist/{chunk-PKMXJDHS.js → chunk-LGWP73N3.js} +1 -1
- package/dist/{chunk-DNJ2EUI4.js → chunk-M3XZZUER.js} +2 -2
- package/dist/{chunk-X2LEA5WZ.js → chunk-MPW3OMAB.js} +4 -4
- package/dist/{chunk-37VT7CBN.js → chunk-MQ56NHZY.js} +3 -3
- package/dist/{chunk-66GPSPHJ.js → chunk-ODHAKZLW.js} +3 -3
- package/dist/{chunk-VNJSOVCS.js → chunk-OONY2XEJ.js} +3 -20
- package/dist/chunk-OONY2XEJ.js.map +7 -0
- package/dist/{chunk-SFFHKLKV.js → chunk-OQ7GMNEA.js} +1 -1
- package/dist/{chunk-K53ERJZE.js → chunk-PPTR7ECF.js} +1 -1
- package/dist/{chunk-XYD26HOU.js → chunk-QLLHQ4NC.js} +1 -1
- package/dist/{chunk-GAHOCTVO.js → chunk-R357FMHE.js} +1 -1
- package/dist/{chunk-6EUA3JLK.js → chunk-REIICUCF.js} +6 -6
- package/dist/{chunk-6EUA3JLK.js.map → chunk-REIICUCF.js.map} +1 -1
- package/dist/{chunk-PJMRV734.js → chunk-RKTBVJGG.js} +2 -2
- package/dist/{chunk-T3NFIJVE.js → chunk-T4YXQTDG.js} +3 -3
- package/dist/{chunk-EXOVGTTX.js → chunk-TW7VYZCV.js} +3 -3
- package/dist/{chunk-ORTVYWVH.js → chunk-TYK67RSX.js} +4 -4
- package/dist/{chunk-6UJ2IX6O.js → chunk-USNKNXS4.js} +1 -1
- package/dist/{chunk-GBRPRP4C.js → chunk-X7II6NLY.js} +3 -3
- package/dist/{chunk-GBRPRP4C.js.map → chunk-X7II6NLY.js.map} +1 -1
- package/dist/{chunk-T5VIUVWS.js → chunk-XGFLQLPP.js} +436 -410
- package/dist/chunk-XGFLQLPP.js.map +7 -0
- package/dist/{cli-ILXOOGOB.js → cli-GW2RLZKS.js} +91 -91
- package/dist/commands-OMEB6ZPR.js +55 -0
- package/dist/{config-HVU5BUJR.js → config-7YD4R22V.js} +4 -4
- package/dist/{context-Z3QI3FNI.js → context-4EG6BLW4.js} +6 -6
- package/dist/{conversationPersistence-FKNK4HLK.js → conversationPersistence-XSJ7MFZQ.js} +3 -3
- package/dist/{conversationTracker-2LFSHPJQ.js → conversationTracker-VXYBDUQD.js} +4 -4
- package/dist/{customCommands-JC4SMHEG.js → customCommands-CEGHI3EI.js} +4 -4
- package/dist/{env-C4DAPLWY.js → env-SFBXDZAW.js} +2 -2
- package/dist/{file-V2C5K5KH.js → file-TKPF7WPK.js} +4 -4
- package/dist/index.js +3 -3
- package/dist/{llm-YTSS25IN.js → llm-UPZIAGPI.js} +32 -32
- package/dist/{llmLazy-TFIRXTKR.js → llmLazy-AH4Z4W4G.js} +1 -1
- package/dist/{loader-GTHCSRZZ.js → loader-KR2G4MZH.js} +4 -4
- package/dist/{lsp-GS74PXYZ.js → lsp-4BXZN54S.js} +6 -6
- package/dist/{lspAnchor-ACLDKRMF.js → lspAnchor-J7X23CTJ.js} +6 -6
- package/dist/{mcp-WULQ66CY.js → mcp-PQ7E5V6N.js} +7 -7
- package/dist/{mentionProcessor-GWPPEFEF.js → mentionProcessor-OBZEHVOK.js} +5 -5
- package/dist/{messages-OGPCOESK.js → messages-Y45VMQJM.js} +1 -1
- package/dist/{model-URPSX5FV.js → model-PLE3KNNX.js} +5 -5
- package/dist/{openai-6W76QZ5A.js → openai-2R2NDBUU.js} +5 -5
- package/dist/{outputStyles-IUWSV34Z.js → outputStyles-XXPDKDY2.js} +4 -4
- package/dist/{pluginRuntime-7ZEORM4F.js → pluginRuntime-SROFDMKU.js} +6 -6
- package/dist/{pluginValidation-OJES7FNG.js → pluginValidation-WRO2DZTR.js} +6 -6
- package/dist/prompts-5Q6CSNXC.js +57 -0
- package/dist/{pybAgentSessionLoad-HQOBJLOU.js → pybAgentSessionLoad-FQQRBPKP.js} +4 -4
- package/dist/{pybAgentSessionResume-XDKORGD2.js → pybAgentSessionResume-P3UHSOY6.js} +4 -4
- package/dist/{pybAgentStreamJsonSession-FTCT4HKD.js → pybAgentStreamJsonSession-SIHHDMP6.js} +1 -1
- package/dist/{pybHooks-FKA2AQ47.js → pybHooks-J6EDF4HT.js} +4 -4
- package/dist/query-CADGN75M.js +55 -0
- package/dist/{registry-GT6NBBK5.js → registry-FWP3Q2GA.js} +5 -5
- package/dist/{ripgrep-GHL736ND.js → ripgrep-MRW3JRSV.js} +3 -3
- package/dist/{skillMarketplace-2IXTVWA6.js → skillMarketplace-I6WS3AB4.js} +3 -3
- package/dist/{state-M7627Z3G.js → state-FFCKZLBN.js} +2 -2
- package/dist/{theme-NDLGHEH5.js → theme-ALYM3CFD.js} +5 -5
- package/dist/{toolPermissionSettings-KVBN66MO.js → toolPermissionSettings-6TUFSTN3.js} +6 -6
- package/dist/tools-IEYQ4SAS.js +55 -0
- package/dist/{userInput-GU6FNIO4.js → userInput-4MUAKMGX.js} +32 -32
- package/package.json +3 -20
- package/resources/output-styles/accessibility-champion.md +66 -0
- package/resources/output-styles/api-designer.md +88 -0
- package/resources/output-styles/concise-engineer.md +32 -0
- package/resources/output-styles/critical-code-reviewer.md +36 -0
- package/resources/output-styles/data-engineer.md +104 -0
- package/resources/output-styles/defensive-programmer.md +81 -0
- package/resources/output-styles/devil-advocate.md +43 -0
- package/resources/output-styles/devops-automator.md +118 -0
- package/resources/output-styles/distributed-systems-architect.md +77 -0
- package/resources/output-styles/documentation-writer.md +47 -0
- package/resources/output-styles/evan-king-system-design-reviewer.md +45 -0
- package/resources/output-styles/functional-purist.md +84 -0
- package/resources/output-styles/performance-optimizer.md +49 -0
- package/resources/output-styles/refactoring-expert.md +118 -0
- package/resources/output-styles/security-auditor.md +49 -0
- package/resources/output-styles/startup-pragmatist.md +58 -0
- package/resources/output-styles/test-driven-developer.md +48 -0
- package/dist/REPL-N755RAFU.js +0 -51
- package/dist/chunk-2DKSGO53.js.map +0 -7
- package/dist/chunk-JRCCJJTK.js.map +0 -7
- package/dist/chunk-T5VIUVWS.js.map +0 -7
- package/dist/chunk-VNJSOVCS.js.map +0 -7
- package/dist/commands-EMWY7YKA.js +0 -55
- package/dist/prompts-XOIWSFPX.js +0 -57
- package/dist/query-FMWLAT3K.js +0 -55
- package/dist/tools-LHTT7WYX.js +0 -55
- /package/dist/{REPL-N755RAFU.js.map → REPL-EOGX5USK.js.map} +0 -0
- /package/dist/{acp-JW3TIYAD.js.map → acp-JTVVQGX6.js.map} +0 -0
- /package/dist/{agentsValidate-SBWTSOTC.js.map → agentsValidate-T552HEU3.js.map} +0 -0
- /package/dist/{ask-REOHQELX.js.map → ask-JT2UVHOU.js.map} +0 -0
- /package/dist/{autoUpdater-QOASKMIL.js.map → autoUpdater-ZBN46KEI.js.map} +0 -0
- /package/dist/{chunk-BV4JBKPK.js.map → chunk-2P4E3ZNA.js.map} +0 -0
- /package/dist/{chunk-HKC3XNTU.js.map → chunk-34KB4DEZ.js.map} +0 -0
- /package/dist/{chunk-A4MELTXR.js.map → chunk-3L5QLWHQ.js.map} +0 -0
- /package/dist/{chunk-2OX2HGKH.js.map → chunk-45CYYYU7.js.map} +0 -0
- /package/dist/{chunk-HS72NWQM.js.map → chunk-5AM65D7G.js.map} +0 -0
- /package/dist/{chunk-2DKSGO53.js → chunk-BKCAVW2G.js} +0 -0
- /package/dist/{chunk-TM2IQSS6.js.map → chunk-DXS27TBK.js.map} +0 -0
- /package/dist/{chunk-Q6ADAH2V.js.map → chunk-GLNNII3K.js.map} +0 -0
- /package/dist/{chunk-LQ3YSDHE.js.map → chunk-HKDUNAZU.js.map} +0 -0
- /package/dist/{chunk-UBR4EMJG.js.map → chunk-HPHRVBGM.js.map} +0 -0
- /package/dist/{chunk-66IQQBOM.js.map → chunk-JQW3XPSA.js.map} +0 -0
- /package/dist/{chunk-CWEWMSYK.js.map → chunk-JQXGDP2G.js.map} +0 -0
- /package/dist/{chunk-PKMXJDHS.js.map → chunk-LGWP73N3.js.map} +0 -0
- /package/dist/{chunk-DNJ2EUI4.js.map → chunk-M3XZZUER.js.map} +0 -0
- /package/dist/{chunk-X2LEA5WZ.js.map → chunk-MPW3OMAB.js.map} +0 -0
- /package/dist/{chunk-37VT7CBN.js.map → chunk-MQ56NHZY.js.map} +0 -0
- /package/dist/{chunk-66GPSPHJ.js.map → chunk-ODHAKZLW.js.map} +0 -0
- /package/dist/{chunk-SFFHKLKV.js.map → chunk-OQ7GMNEA.js.map} +0 -0
- /package/dist/{chunk-K53ERJZE.js.map → chunk-PPTR7ECF.js.map} +0 -0
- /package/dist/{chunk-XYD26HOU.js.map → chunk-QLLHQ4NC.js.map} +0 -0
- /package/dist/{chunk-GAHOCTVO.js.map → chunk-R357FMHE.js.map} +0 -0
- /package/dist/{chunk-PJMRV734.js.map → chunk-RKTBVJGG.js.map} +0 -0
- /package/dist/{chunk-T3NFIJVE.js.map → chunk-T4YXQTDG.js.map} +0 -0
- /package/dist/{chunk-EXOVGTTX.js.map → chunk-TW7VYZCV.js.map} +0 -0
- /package/dist/{chunk-ORTVYWVH.js.map → chunk-TYK67RSX.js.map} +0 -0
- /package/dist/{chunk-6UJ2IX6O.js.map → chunk-USNKNXS4.js.map} +0 -0
- /package/dist/{cli-ILXOOGOB.js.map → cli-GW2RLZKS.js.map} +0 -0
- /package/dist/{commands-EMWY7YKA.js.map → commands-OMEB6ZPR.js.map} +0 -0
- /package/dist/{config-HVU5BUJR.js.map → config-7YD4R22V.js.map} +0 -0
- /package/dist/{context-Z3QI3FNI.js.map → context-4EG6BLW4.js.map} +0 -0
- /package/dist/{conversationPersistence-FKNK4HLK.js.map → conversationPersistence-XSJ7MFZQ.js.map} +0 -0
- /package/dist/{conversationTracker-2LFSHPJQ.js.map → conversationTracker-VXYBDUQD.js.map} +0 -0
- /package/dist/{customCommands-JC4SMHEG.js.map → customCommands-CEGHI3EI.js.map} +0 -0
- /package/dist/{env-C4DAPLWY.js.map → env-SFBXDZAW.js.map} +0 -0
- /package/dist/{file-V2C5K5KH.js.map → file-TKPF7WPK.js.map} +0 -0
- /package/dist/{llm-YTSS25IN.js.map → llm-UPZIAGPI.js.map} +0 -0
- /package/dist/{llmLazy-TFIRXTKR.js.map → llmLazy-AH4Z4W4G.js.map} +0 -0
- /package/dist/{loader-GTHCSRZZ.js.map → loader-KR2G4MZH.js.map} +0 -0
- /package/dist/{lsp-GS74PXYZ.js.map → lsp-4BXZN54S.js.map} +0 -0
- /package/dist/{lspAnchor-ACLDKRMF.js.map → lspAnchor-J7X23CTJ.js.map} +0 -0
- /package/dist/{mcp-WULQ66CY.js.map → mcp-PQ7E5V6N.js.map} +0 -0
- /package/dist/{mentionProcessor-GWPPEFEF.js.map → mentionProcessor-OBZEHVOK.js.map} +0 -0
- /package/dist/{messages-OGPCOESK.js.map → messages-Y45VMQJM.js.map} +0 -0
- /package/dist/{model-URPSX5FV.js.map → model-PLE3KNNX.js.map} +0 -0
- /package/dist/{openai-6W76QZ5A.js.map → openai-2R2NDBUU.js.map} +0 -0
- /package/dist/{outputStyles-IUWSV34Z.js.map → outputStyles-XXPDKDY2.js.map} +0 -0
- /package/dist/{pluginRuntime-7ZEORM4F.js.map → pluginRuntime-SROFDMKU.js.map} +0 -0
- /package/dist/{pluginValidation-OJES7FNG.js.map → pluginValidation-WRO2DZTR.js.map} +0 -0
- /package/dist/{prompts-XOIWSFPX.js.map → prompts-5Q6CSNXC.js.map} +0 -0
- /package/dist/{pybAgentSessionLoad-HQOBJLOU.js.map → pybAgentSessionLoad-FQQRBPKP.js.map} +0 -0
- /package/dist/{pybAgentSessionResume-XDKORGD2.js.map → pybAgentSessionResume-P3UHSOY6.js.map} +0 -0
- /package/dist/{pybAgentStreamJsonSession-FTCT4HKD.js.map → pybAgentStreamJsonSession-SIHHDMP6.js.map} +0 -0
- /package/dist/{pybHooks-FKA2AQ47.js.map → pybHooks-J6EDF4HT.js.map} +0 -0
- /package/dist/{query-FMWLAT3K.js.map → query-CADGN75M.js.map} +0 -0
- /package/dist/{registry-GT6NBBK5.js.map → registry-FWP3Q2GA.js.map} +0 -0
- /package/dist/{ripgrep-GHL736ND.js.map → ripgrep-MRW3JRSV.js.map} +0 -0
- /package/dist/{skillMarketplace-2IXTVWA6.js.map → skillMarketplace-I6WS3AB4.js.map} +0 -0
- /package/dist/{state-M7627Z3G.js.map → state-FFCKZLBN.js.map} +0 -0
- /package/dist/{theme-NDLGHEH5.js.map → theme-ALYM3CFD.js.map} +0 -0
- /package/dist/{toolPermissionSettings-KVBN66MO.js.map → toolPermissionSettings-6TUFSTN3.js.map} +0 -0
- /package/dist/{tools-LHTT7WYX.js.map → tools-IEYQ4SAS.js.map} +0 -0
- /package/dist/{userInput-GU6FNIO4.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-
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
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,
|
|
@@ -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-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-R357FMHE.js";
|
|
6
|
+
import "./chunk-2P4E3ZNA.js";
|
|
7
7
|
import "./chunk-RQVLBMP7.js";
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
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-
|
|
6
|
+
} from "./chunk-DXS27TBK.js";
|
|
7
7
|
import "./chunk-UNNVICVU.js";
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-JQW3XPSA.js";
|
|
9
|
+
import "./chunk-2P4E3ZNA.js";
|
|
10
10
|
import "./chunk-RQVLBMP7.js";
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
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-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
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-
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-TW7VYZCV.js";
|
|
18
|
+
import "./chunk-PPTR7ECF.js";
|
|
19
|
+
import "./chunk-5AM65D7G.js";
|
|
20
20
|
import "./chunk-F4AXICO7.js";
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
21
|
+
import "./chunk-HPHRVBGM.js";
|
|
22
|
+
import "./chunk-FGAQGENO.js";
|
|
23
|
+
import "./chunk-JQXGDP2G.js";
|
|
24
24
|
import "./chunk-XKYHFZEC.js";
|
|
25
|
-
import "./chunk-
|
|
26
|
-
import "./chunk-
|
|
27
|
-
import "./chunk-
|
|
28
|
-
import "./chunk-
|
|
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-
|
|
31
|
-
import "./chunk-
|
|
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-
|
|
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-
|
|
44
|
+
import "./chunk-45CYYYU7.js";
|
|
45
45
|
import "./chunk-QWIBSCDN.js";
|
|
46
|
-
import "./chunk-
|
|
47
|
-
import "./chunk-
|
|
48
|
-
import "./chunk-
|
|
46
|
+
import "./chunk-MPW3OMAB.js";
|
|
47
|
+
import "./chunk-T4YXQTDG.js";
|
|
48
|
+
import "./chunk-JQW3XPSA.js";
|
|
49
49
|
import "./chunk-UZ34JEUK.js";
|
|
50
|
-
import "./chunk-
|
|
50
|
+
import "./chunk-RKTBVJGG.js";
|
|
51
51
|
import "./chunk-BJSWTHRM.js";
|
|
52
|
-
import "./chunk-
|
|
53
|
-
import "./chunk-
|
|
52
|
+
import "./chunk-GLNNII3K.js";
|
|
53
|
+
import "./chunk-A33Z7A54.js";
|
|
54
54
|
import "./chunk-KFEHHKZ2.js";
|
|
55
|
-
import "./chunk-
|
|
56
|
-
import "./chunk-
|
|
57
|
-
import "./chunk-
|
|
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-
|
|
61
|
+
import "./chunk-USNKNXS4.js";
|
|
62
62
|
import {
|
|
63
63
|
getCwd,
|
|
64
64
|
logError,
|
|
65
65
|
setCwd
|
|
66
|
-
} from "./chunk-
|
|
67
|
-
import "./chunk-
|
|
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-
|
|
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-
|
|
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.
|
|
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,21 +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:runtime-mcp-management": "node scripts/runtime-mcp-management-gate.mjs",
|
|
76
|
-
"check:runtime-mcp-events": "node scripts/runtime-mcp-events-gate.mjs",
|
|
77
|
-
"check:sdk-session-contract": "node scripts/sdk-session-contract-gate.mjs",
|
|
78
|
-
"check:openapi-diff-budget": "node scripts/sdk-openapi-diff-gate.mjs",
|
|
79
|
-
"check:sdk-events-source": "node scripts/sdk-events-source-gate.mjs",
|
|
80
|
-
"check:sdk-bridge-consistency": "node scripts/sdk-bridge-consistency-gate.mjs",
|
|
81
|
-
"check:sdk-dual-track-retirement": "node scripts/sdk-dual-track-retirement-gate.mjs",
|
|
82
69
|
"check:sdk-legacy-semantics": "node scripts/sdk-legacy-semantics-gate.mjs",
|
|
83
|
-
"check:sdk-generated-transport-only": "node scripts/sdk-generated-transport-only-gate.mjs --hard",
|
|
84
|
-
"check:sdk-generated-transport-only:soft": "node scripts/sdk-generated-transport-only-gate.mjs --soft",
|
|
85
|
-
"check:runtime-query-consistency": "node scripts/runtime-query-consistency-gate.mjs",
|
|
86
70
|
"build:binary": "node scripts/build-binary.mjs",
|
|
87
71
|
"build:native-lock": "node scripts/build-native-lock.mjs",
|
|
88
72
|
"clean": "node scripts/clean.mjs",
|
|
@@ -95,9 +79,8 @@
|
|
|
95
79
|
"test": "bun test",
|
|
96
80
|
"test:unit": "bun test --preload ./tests/setup/native-lock-test-setup.ts tests/unit",
|
|
97
81
|
"test:integration": "bun test tests/integration",
|
|
98
|
-
"test:sdk-integration": "bun test tests/integration/server/sdk-client.test.ts",
|
|
99
82
|
"test:e2e": "bun test tests/e2e",
|
|
100
|
-
"test:server": "bun test tests/unit/sdk-batch-a-closure.test.ts tests/unit/sdk-batch-
|
|
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",
|
|
101
84
|
"gate:runtime-assets": "bun run scripts/runtime-assets-gate-check.mjs",
|
|
102
85
|
"preflight:runtime-assets": "node scripts/runtime-assets-preflight.mjs",
|
|
103
86
|
"verify:runtime-assets": "node scripts/runtime-assets-verify.mjs",
|
|
@@ -121,7 +104,7 @@
|
|
|
121
104
|
"benchmark:typed-part-baseline": "bun scripts/typed-part-baseline-benchmark.mjs",
|
|
122
105
|
"gate:typed-part-performance": "node scripts/typed-part-performance-gate.mjs",
|
|
123
106
|
"typecheck": "tsc --noEmit",
|
|
124
|
-
"release:gate": "npm run generate:sdk && npm run check:sdk-generated && npm run generate:
|
|
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",
|
|
125
108
|
"prepare": "bun run scripts/install-hooks.mjs",
|
|
126
109
|
"sync:native-lock": "node scripts/sync-native-lock-versions.mjs",
|
|
127
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.
|