fix: add verbatim inclusion rule to bootstrap assembly instructions#138
Merged
Alan-Jowett merged 3 commits intomicrosoft:mainfrom Mar 30, 2026
Merged
Conversation
The Assembly Process section in bootstrap.md used ambiguous language
("Load the persona file", "<protocol 1 content>") that LLMs
interpreted as permission to summarize and condense protocol content.
This produced assembled prompts with as little as 6-7% of the source
protocol content — some protocols were reduced to phase headings
with zero operational detail, and critical sections like Known-Safe
Patterns (false-positive suppression rules) were completely omitted.
Changes:
- Replace "Load" with "Read and include full body text verbatim"
for all component types in the assembly steps
- Add explicit Verbatim Inclusion Rule section with anti-summarization
guidance and concrete examples
- Change output template placeholders from "<persona content>" to
"<complete body of the persona file — verbatim, not summarized>"
- Scope the "condensed" language to agent-instructions output mode
only, with explicit note that condensation never applies to raw
prompt output
Fixes microsoft#137
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates bootstrap.md to ensure PromptKit’s LLM-driven prompt assembly includes referenced component content verbatim (rather than summarizing/condensing), addressing observed protocol content loss when the bootstrap instructions are followed.
Changes:
- Reworded assembly steps to explicitly require verbatim inclusion of persona/protocol/taxonomy/format/template bodies.
- Added a “Verbatim Inclusion Rule” section with explicit anti-summarization guidance.
- Updated raw prompt output placeholders and clarified that condensation applies only to agent-instructions output mode.
…y, step refs, and align earlier Load wording - Verbatim Inclusion Rule: enumerate allowed transformations explicitly (frontmatter removal, param substitution, whitespace trimming) instead of saying 'unmodified' which conflicts with param substitution - Taxonomy step: add 'If one or more taxonomies are referenced' condition and make output template plural with omit-if-empty note - Fix step reference: 'step 6' -> 'step 5b' for output mode selection - Align steps 5a and 8 with verbatim wording (was still using 'Load') Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…cope - Step 5a: make format component conditional — skip when template declares format: null or omits the format field, matching how cli/lib/assemble.js behaves - Verbatim Inclusion Rule: clarify that allowed transforms apply to component body text extraction, not overall document structure (section headers and separators are assembly structure) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This was referenced Mar 30, 2026
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.
Summary
Fixes #137 — bootstrap.md's assembly instructions caused LLMs to summarize and condense protocol content instead of including it verbatim, producing assembled prompts with as little as 6–7% of the source protocol content.
Problem
The Assembly Process section used ambiguous language:
<protocol 1 content>— interpreted as ""include the substance"" rather than ""transcribe verbatim""Observed in eBPF for Windows workflow prompts where:
Changes
<persona content>→<complete body of the persona file — verbatim, not summarized>Validation
python tests/validate-manifest.pypasses ✅assemble.jsalready handles this correctly via programmatic file concatenation)