Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -1512,7 +1512,7 @@ export const assistantKnowledgeTopics = {
{
path: "landing-zone-configurator/app/apps/api/src/assistant/model-serving.ts",
sha256:
"0454982ec262c9aaa646f4b8d3910ee92c5f19393979fa0f38cd5d36ad1021e9",
"031ca84b966e5063763c16778d71b8eb0befd935fc653c79e0956887be16c2c9",
},
{
path: "landing-zone-configurator/app/apps/api/src/assistant/knowledge.ts",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2192,6 +2192,15 @@ Reviewed knowledge: ${JSON.stringify({ fields: draftFields, ...topicKnowledge })
.slice(-12)
.map((entry) => ({ role: entry.role, content: entry.content })),
{ role: "user", content: message },
...(!draftAllowed && !firewallAdvice
? [
{
role: "system" as const,
content:
"ANSWER COMPLETENESS: Put the complete factual answer in explanation itself, in the user's language. An introduction announcing rules or a list is not an answer: actually include the requested fields, supported values, limits and exclusions from the reviewed topic. Contract names, versions, dates and references are provenance, not substitutes for those facts. Explain native defaults, including null meaning no optional service instance, where relevant; do not promote illustrative enabled values to defaults. Questions may ask only genuinely missing decisions after the factual answer; never move the answer's facts into questions. Before finishing, check that explanation stands alone without an absent continuation or a promised list. Do not invent facts, propose changes or claim anything was saved or executed.",
},
]
: []),
...(dnsSettingsDraft
? [
{
Expand Down
17 changes: 17 additions & 0 deletions landing-zone-configurator/app/tests/assistant-editor.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -427,6 +427,23 @@ describe("topic knowledge delivery", () => {
topic,
...extra,
]);
if (topic !== "firewall-infrastructure") {
expect(request.messages[0]).toMatchObject({
role: "system",
content: expect.stringContaining("ANSWER COMPLETENESS:"),
});
expect(request.messages[0]?.content).toContain(
"including null meaning no optional service instance",
);
expect(request.messages[0]?.content).toContain(
"Questions may ask only genuinely missing decisions after the factual answer",
);
expect(request.messages.at(-1)).toEqual({
role: "user",
content:
"Bitte erläutere die Bedeutung und Grenzen dieser Komponente.",
});
}
},
);
const result = await model.converse(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,13 @@ Raw synthetic receipts are retained as CI artifacts. Promotion requires the
original build's successful live-qualification job as well as its build job;
older builds without that proof cannot bypass qualification. A missing token,
unavailable model or failed criterion blocks qualification, not a silent skip.
General advice ends its merged trusted system context with an explicit
answer-completeness instruction: the explanation must contain the actual requested facts, native
defaults, limits and exclusions, not just introduce a missing list or refer to
contract metadata. Follow-up questions cannot replace the factual answer.
The bounded firewall requirements dialogue retains its separate short-answer
contract. Transport tests check this instruction's delivery; unchanged real-model
factual criteria still decide whether the resulting answers qualify.
CI needs `LZC_MODEL_SERVING_TOKEN` available to the protected `assistant-tests`
environment. Local receipts do not certify that remote environment or authorize
deployment. CI qualification jobs share a non-cancelling concurrency group to
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"schemaVersion": 1,
"status": "field-inventory-and-smoke-corpus-not-ai-qualification",
"engineRevision": "a256f6896d11134fdc351786f1be5eba4e56b2e2",
"knowledgeSha256": "ee51045fa0d249b535d9c449df1311af336ffd4daf44a1b67b1fc0852ee5c01b",
"knowledgeSha256": "5db344a9009f2d3e3a519ac6dbef9f4f614611101866756d4e2ad6f142667a67",
"sourceDigests": {
"scripts/assistant-scenarios.ts": "d2baa94ac001f35ed5c990aefbaaa72e754a35b9cb3740ab0dc7b041514d236a",
"scripts/assistant-tests.ts": "fb1ba4a3438fbcd6d12c0a87d9bc9beeae8066bb5b691a7e2901635a842bb5df"
Expand Down
Loading