Repository navigation
Conversation
Register ai as a shared threat model, document its scope, and add a regression test for explicit enablement. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 3b1133f4-388a-4e13-a00f-dce2b41cd295
owen-mc
previously approved these changes
Oct 14, 2026
jacknojo
commented
Oct 14, 2026
jacknojo
left a comment
Contributor
Author
There was a problem hiding this comment.
Thanks Owen, made two followup commits for your comments.
Contributor
There was a problem hiding this comment.
🟢 Approval recommended
The shared configuration, documentation, and focused regression coverage consistently implement the described opt-in behavior.
0 open findings
What changed in this PR
Adds the shared, opt-in ai threat model for LLM-generated output.
Changes:
- Registers
aias a known threat-model kind. - Documents the new kind and adds a change note.
- Tests explicit enablement while preserving default-disabled behavior.
| File | Description |
|---|---|
shared/threat-models/ext/threat-model-grouping.model.yml |
Registers ai under all. |
shared/threat-models/change-notes/2026-10-12-ai-threat-model.md |
Announces the opt-in threat model. |
javascript/ql/test/library-tests/threat-models/ai-enabled/ActiveAiThreatModel.ql |
Verifies ai is known and active. |
javascript/ql/test/library-tests/threat-models/ai-enabled/ActiveAiThreatModel.ext.yml |
Enables ai for the regression test. |
javascript/ql/test/library-tests/threat-models/ai-enabled/ActiveAiThreatModel.expected |
Records the expected test result. |
docs/codeql/reusables/threat-model-description.rst |
Documents the ai category. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
owen-mc
approved these changes
Oct 14, 2026
This branch has not been deployed
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
Introduce the shared
aithreat-model kind for output generated by large language models (LLMs). This establishes the configuration support for follow-up source models and queries, without adding third-party library models or new queries.aiunderall, making it a known, independently configurable threat-model kind. It remains disabled by default.codeql/threat-models.aiand requires bothknownThreatModel("ai")andcurrentThreatModel("ai")to hold. The existing default-configuration test confirms thataiis not enabled by default.No new QL framework logic is necessary: the existing threat-model implementation derives known kinds and configuration behavior from the shared grouping table.
Validation
Both tests passed with the CodeQL CLI:
codeql test run \ javascript/ql/test/library-tests/threat-models/ai-enabled \ javascript/ql/test/library-tests/threat-models/default