Conversation
The system instruction gives the answer format as a template of bracketed placeholders, and the model copies them instead of filling them in: on four fabricated events the old instruction opened every answer with the literal "[Краткое summary]". The format is now one filled example, kept inside a tag so it reads as a sample rather than as part of the conversation, and the rules say what the answer contains instead of what it must not do. Forbidding the copying was the alternative, but it leaves the placeholders in front of the model. On the same four events an example-based instruction opened every answer with a sentence about the error itself and kept all three section headings. The example is written in the markup the rules ask for: identifiers in backticks, multi-line code in a fenced block between list items. The rules never mentioned inline code, and answers came back with identifiers as plain words and without code blocks. Everything outside the example is in English, the language of the spotlighting rules it is concatenated with. The example carries the language of the answer.
e11sy
reviewed
Sep 21, 2026
| * | ||
| * The shape comes from a filled example. | ||
| * | ||
| * @see {@link https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices | Claude prompting best practices} |
Member
There was a problem hiding this comment.
as i remember we've used OpenAI API, maybe there is peace of doc from them?
it would be more relevant
Member
Author
There was a problem hiding this comment.
Done, swapped to the OpenAI prompt engineering guide.
| - Write valid Markdown | ||
| - Indent nested lists with spaces, the same width on every level | ||
| - Where nesting would grow deeper, write a subsection instead | ||
| - Add links where they help |
There was a problem hiding this comment.
Maybe we should clarify this rule so the model doesn't fabricate links:
Suggested change
| - Add links where they help | |
| - Add links where they help, do not invent or guess URLs. |
| - Put identifiers, field names, values and one-line snippets in backticks | ||
| - Keep headings plain: no numbering, no code | ||
| - Put multi-line code in a fenced block with a language tag | ||
| - Never place code block inside list item, keep it between items |
There was a problem hiding this comment.
Would it make sense to add rule for incomplete event data? For example: If the event data is insufficient to determine the root cause, say so instead of guessing.
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.
The answer format was a template of bracketed placeholders, so the model copied it instead of filling it in..
Before and after, the first line of an answer:
The format is now one filled example in an
<example>tag, with the markup rules in a<markup>tag beside it, both named from the instruction above them.