kdd-gates: KDD methodology gates as native Tools #4797
MauricioPerera
started this conversation in
Show Your Plugins!
Replies: 4 comments
|
Cross-reference: the KDD methodology this plugin wraps is announced separately in #4799. |
0 replies
|
Follow-up: built a second plugin, gh-discussions, that lets the agent search/create/comment on GitHub Discussions directly instead of me shelling out to |
0 replies
|
Two more follow-ups in this batch: bench (LM Studio / Ollama latency+tok/s comparator) and kdd-scaffold (generates the task contracts this plugin validates). |
0 replies
|
Also documented here: enforcing the implementer/validator split mechanically with a toolFilter-restricted dsh-tool-subagent instance — not a new plugin, just config on top of this one's tools. |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
kdd-gates — KDD methodology as native Tools
Repo: https://github.com/MauricioPerera/kdd-gates
A composition plugin that exposes KDD (Knowledge-Driven Development)'s deterministic gate scripts as model Tools:
kdd_validate— Level-1 core gates (validate_contracts+validate_okf)kdd_seal— freezes an oracle's hash for the task contract'stests_sha256kdd_perimeter— checks a diff against a contract'stouch_only, catchesTESTS_TOUCHED/OUT_OF_PERIMETERkdd_preflight— dry-run of all 19 gates, with real sandbox escalation (sandboxPermissions+justification, goes through the actual approval service — no bypass) and arun_in_backgroundmode for the full-suite runIt also injects a
systemPromptsection teaching the agent the oracle-first workflow (freeze the test before implementing, validate the contract before writing code, perimeter-check after), so it doesn't need to be re-explained per task.It doesn't reimplement anything — it's a thin wrapper that shells out to the KDD template's own
scripts/*.pyon whateverrepoRootyou point it at.Built against two bugs found along the way
Building this surfaced two harness issues, documented and reported here:
oneOftool-call params arriving as raw strings for some models. Worked around by keeping everykdd_*parameter schema fully typed (string/array/boolean, no bareoneOf, no untypedtype: "json").ctx.subprocess.spawn()hangs on Windows when the spawned process has its own nested subprocess children.kdd_preflightwrapspreflight.py(which spawns ~19 grandchildren) throughctx.shellinstead, which doesn't exhibit the hang.Both are documented in more detail in the repo's README, along with a third fix (a
.kdd-tmprecursive self-copy caused by putting the scratch temp dir inside the repo — moved it outside).Verified end-to-end against both the KDD template repo directly and a project instantiated from it via
scripts/init_project.py --apply— same result both times, including a full oracle → seal → contract → validate → implement → perimeter cycle.MIT licensed, tagged
dsh-plugin.All reactions