feat(yield): convert-skill — the converter is itself a Yield skill - #266
Merged
Conversation
…ocus-decided design) Turns an existing prose SKILL.md into a Yield program in the operator's chosen language (go/typescript/python/rust). Locus verdicts (docs/locus-converter.md): - supervisory-rw controllable: shipping an unverified conversion is preventable; nonblocking: every conversion ends verified or honestly blocked - DECIDED rival-design comparison: executed-verification satisfies forbidden-unreachable; completing on the model's transcription is rejected with the verbatim trace generate_program -> complete_untested -> SHIPPED_UNVERIFIED The program owns pipeline order, the language menu, the <=2 repair bound, and the evidence gate (nested 'yskill test' of the generated skill, executed by the supervisor). The model owns flow extraction and code writing. The scripted fixture exercises the full machinery including the nested test run (CI: YSKILL=/tmp/yskill). Disclosure-Reviewed: reviewed — public-safe only; private tree untouched by this commit
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes the loop the whole lab exists for: existing prose skills get a paved road into Yield, in the language the operator picks (Go / TypeScript / Python / Rust) — and the converter is itself a Yield skill, running under the same supervisor it generates programs for.
Locus-decided design (
yield/docs/locus-converter.md)SHIPPED_VERIFIEDor honestlyREPORTED_BLOCKED.forbidden-unreachable; completing on the model's transcription is rejected with the verbatim traceextract_flow → pick_language → generate_program → complete_untested → SHIPPED_UNVERIFIED.The spine: a conversion that was never executed is never "done." The program owns pipeline order, the closed language menu, the ≤2 repair bound, and the evidence gate — a nested
yskill testof the generated skill, executed by the supervisor as observed fact. The model owns flow extraction and code writing.Contents
examples/convert-skill(Go): ask for the source prose skill → read it (run_command, observed) →agent_taskextract the implicit flow (schema-bound) →ask_userpick the target language →agent_taskwrite the files → nestedyskill testof the result, with a bounded repair loop → evidence-bound completion or honestBlocked.${YSKILL:-yskill}; CI pinsYSKILL=/tmp/yskill).docs/locus/; design docdocs/locus-converter.md; README pointer.Verification
go vetclean;YSKILL=/tmp/yskill yskill test examples/convert-skillreachescompletedlocally (nested test of the destination skill included); CI runs it in the yield-lab validate job.Also in this cycle (context, already merged/repaired)
The public-repo sync had wedged silently: the manual seed recorded a branch commit that never landed on main, so the stale-guard ignored every sync while reporting success. Repaired by re-projecting from
main @ 7e6447d0— this PR's merge is the first true end-to-end test of the sync loop.