@gpzhang2001/sharpkit-preset
v0.2.2
Published
Pentest preset: penetration-testing system prompt (verbatim template + skill policy) rendered from scan config over the dsh system-prompt seam
Readme
@gpzhang2001/sharpkit-preset
提示词与知识层:系统提示词(模板打包 + jinja 子集渲染器 + 技能选择策略)从扫描配置渲染,经 dsh system-prompt 的 persona 槽位注册;quick/deep 预算语义随 pentestPreset 服务暴露给编排层。
渲染
src/system_prompt.jinja:strix 模板逐字节拷贝(不手工转写)jinja.ts:覆盖模板实际用法的子集求值器——行级 if/else/endif/for/endfor、行内{% if %}、{{ dotted }}、a and b、| dictsort、零/单参函数调用(get_skill);空白语义经逆向锁定:真分支相邻标签产空行、假分支只留 endif 空行、for 标签换行在每次迭代体内、-%}右修剪、模板末尾换行剥离(keep_trailing_newline=False)skills.ts:_resolve_skills(顺序策略:requested → scan_modes/ [+diff] → tooling ×2 → analysis ×2 → root/whitebox 扩展,去重)、load_skills(裸名键、frontmatter 剥离)、get_available_skills(目录遍历 + 内部类目排除)、validate_requested_skills(≤5、歧义名)- Golden:
tests/golden/为原版 jinja 对 4 种配置(deep/quick × root/child × whitebox × interactive)的渲染结果,TS 输出逐字节一致(skillsRoot 指向 strix 原版树保证同源)
scan_mode 语义
quick(60 turns / $5)与 deep(250 turns / $25)的默认预算矩阵。
交叉引用说明
知识包保留原始工具名(exec_command/create_vulnerability_report…),与本套件暴露的工具名一致。
