一键导入
clojure-dsl-worker
Implements Clojure DSL features including macros, registries, pipeline stages, transforms, metrics, and tests
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Implements Clojure DSL features including macros, registries, pipeline stages, transforms, metrics, and tests
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | clojure-dsl-worker |
| description | Implements Clojure DSL features including macros, registries, pipeline stages, transforms, metrics, and tests |
NOTE: Startup and cleanup are handled by worker-base. This skill defines the WORK PROCEDURE.
Use for all Shibboleth features: DSL macro implementation, registry logic, pipeline stages, transform implementations, metrics, CLI, and tests.
Read the spec: Before ANY implementation, read /home/err/devel/specs/drafts/guardrail-promptbench-dsl.md — specifically the sections relevant to your feature. Also read the feature description thoroughly.
Write tests first (RED):
test/promptbench/ matching the source namespace.clj -M:test to confirm tests fail (RED).Implement to make tests pass (GREEN):
src/promptbench/ following the namespace structure.clj -M:test to confirm all tests pass (GREEN).Verify beyond tests:
clj -M:test to confirm full test suite passes (not just new tests).Check for spec compliance:
For features using libpython-clj (embedding, clustering, parquet):
promptbench.python.* namespaces.libpython-clj2.python for direct Python calls.libpython-clj2.require with require-python for module imports.sentence-transformers, hdbscan, polars must be importable.For MT transform implementation:
http://127.0.0.1:8789/v1/chat/completionsgpt-5.2Authorization: Bearer $PROXY_AUTH_TOKEN (from env)temperature: 0 and include seed in request for reproducibility.clj-http.client for HTTP calls.{
"salientSummary": "Implemented def-attack-family macro with spec validation, taxonomy registry, and query functions (descendants, families-with-tag). Wrote 14 test cases in taxonomy_test.clj covering registration, field storage, validation errors, tag queries, and hierarchy traversal. All 14 tests pass via `clj -M:test`.",
"whatWasImplemented": "src/promptbench/taxonomy/families.clj (def-attack-family macro with spec validation), src/promptbench/taxonomy/registry.clj (atom-backed registry with query functions: get-family, all-families, descendants, families-with-tag, coverage-matrix, reset!)",
"whatWasLeftUndone": "",
"verification": {
"commandsRun": [
{"command": "clj -M:test", "exitCode": 0, "observation": "Ran 14 tests in 1 namespace, 0 failures, 0 errors"},
{"command": "clj -Stree", "exitCode": 0, "observation": "All deps resolved, no conflicts"}
],
"interactiveChecks": [
{"action": "Verified def-attack-family persona-injection from spec §2.1 loads and all fields round-trip through registry", "observed": "All fields match, tags stored as PersistentHashSet, signatures as vector of maps"},
{"action": "Verified taxonomy/descendants :adversarial traverses 3-level hierarchy", "observed": "Returns #{:persona-injection :dan-variants :character-roleplay :authority-impersonation :developer-mode} — all leaf families"}
]
},
"tests": {
"added": [
{
"file": "test/promptbench/taxonomy_test.clj",
"cases": [
{"name": "def-attack-family-registers", "verifies": "Family appears in registry after definition"},
{"name": "def-attack-family-stores-all-fields", "verifies": "All fields round-trip through registration"},
{"name": "def-attack-family-rejects-missing-description", "verifies": "Spec error on missing :description"},
{"name": "def-attack-family-tags-are-set", "verifies": "Tags stored as set, deduplicated"},
{"name": "descendants-traverses-hierarchy", "verifies": "Multi-level hierarchy returns leaf families"},
{"name": "families-with-tag-filters-correctly", "verifies": "Tag query returns matching families only"}
]
}
]
},
"discoveredIssues": []
}