feat(framework): remove the persona / skill / memory framing (#547)#550
Merged
Conversation
A run's system channel is now the built-in #326 prompt plus the user's own SYSTEM.md, and nothing else. Nothing is read off disk and appended when the run starts, so the prompt is knowable before it runs. A measured build prompt drops 8,852 -> 3,874 chars, the same text a prompt-kind run already composed. The two paths now produce byte-identical system channels. The extension SPI goes with them: FrameworkExtension carried only personas and skills, so nothing was left in it. readProjectSignals moves to project.ts; preset detection still narrates what it found.
Member
Author
|
Correcting an overstatement in the description now that this is merged, so the record is right. I framed the result as "a build prompt is the #326 block". Measured, it is 47% of it:
Everything this PR claims is still true: 8,852 -> 3,874, personas / skills / memory gone, build and prompt runs byte-identical, the preview exact. What is not true is that what remains is all yours. The emit protocols are the majority of it, and they are mine. Picked up on #326 with the full text and the ask: #326 (comment) |
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 #547. Follows #548 + #549 (#545), both merged.
A run's system prompt is now the built-in #326 prompt plus your own
SYSTEM.md. Nothing else. Nothing is read off disk and appended when the run starts.The number
A build used to append the personas and skills for its detected stack plus the full contents of the repo's memory files. Measured on a real
--fakebuild:3,874 is exactly what a
prompt-kind run already composed. The two paths now produce byte-identical system channels, which is the proof the framing is actually gone rather than merely disconnected.None of the removed text was designed. It accumulated, and it was bigger than the prompt it was wrapping.
Two things fall out of this
1. The prompt preview is now exact. This closes a gap I left in #520. The "See actual prompt sent" disclosure had to carry a caveat that a build appends more at run time and that a pre-run preview therefore could not be exact. That is no longer true, so the caveat is deleted. What you read before the run is what the agent gets, for every run kind.
2. A build finally stops being opinionated about the stack. #549 removed the architect turn, but
personas/library.tsstill hard-instructed "Default to Prisma" and the Vike personas were stack-opinionated. #549 and this PR together are what deliver that. Neither did it alone.The call I made that you may want to reverse
The extension SPI (#190) goes with them.
FrameworkExtensionis{name, capability, personas, skills, signals}- strip personas and skills and it carries literally nothing, so it cannot survive as a half-thing. #190 is closed, so this is not cutting across live work, but it is a deletion beyond "remove the prompt text" and it is yours to veto. If you want the registry kept as a seam for the first-class skills feature later, say so and I will restore it without the prompt text.Deleted with it:
discoverExtensions,--compose-extensions, and the two example packages that existed only to prove the SPI (framework-discovery-demo,framework-hello).What survives
readProjectSignalsmoved toproject.ts; a run still narratesDetected Vike (confidence 2). Detection now only narrates - none of it reaches the prompt, and a test pins that.skillsand keep their loops, prompts, modes, and review policy, which is the substance.@gemstack/ai-skillsis untouched. Different thing (an on-diskSKILL.mdloader for ai-sdk agents), and load-bearing: itsparseSkillManifestparses every prompt body and preset markdown in ai-autopilot. Confirmed zero diff.Locked down
Two tests pin the property, because a description is not a guarantee:
composeRunSystem()exactly equals[#326 block, AWAIT_PROTOCOL, SIGNAL_PROTOCOL].join('\n\n'), plus one proving no supported option can append a trailing section.runFrameworkrun and asserts exact equality. That is the one that would catchrun.tsreintroducing framing; the unit test alone cannot.Verify
framework --fake --no-dashboard:system prompt sent (3874 chars),Detected Vike (confidence 2), runs through to production-grade, exit 0