Skip to content

Add .NET chatbot knowledge sources and dedicated answer guideline - #17253

Draft
Jialin Huang (JialinHuang803) wants to merge 8 commits into
mainfrom
jialinhuang/enable-new-channels
Draft

Jialin Huang (JialinHuang803) wants to merge 8 commits into
mainfrom
jialinhuang/enable-new-channels

Conversation

@JialinHuang803

@JialinHuang803 Jialin Huang (JialinHuang803) commented Oct 13, 2026 •

Copy link
Copy Markdown
Member

Summary

Related to Azure/azure-sdk-pr#2609 (does not close the issue).

  • Extend the existing Azure/azure-sdk-for-net source with C# management/data-plane emitter documentation and READMEs, the mitigate-breaking-changes and mgmt-review-comment-resolution skill directories, Azure.Core.TestFramework README, test proxy onboarding, tsp-client README, and client customization guidance. Preserve existing repositories and paths, the shared azure_sdk_for_net_docs folder, and repository-relative citations.
  • Add upstream microsoft/typespec C# emitter documentation from packages/http-client-csharp/.tspd/docs under typespec_csharp_emitter_docs, with unbranded metadata and correct GitHub citation URLs. Expose it to the .NET tenant alongside Azure-branded sources.
  • Use consistent scope: branded metadata without a service-plane label for every shared .NET source entry. Both management- and data-plane documentation remain available; repeated processing of the same repository-relative document cannot assign conflicting plane metadata. Upstream unbranded documents also remain accessible with either service-plane filter because missing plane metadata is admitted.
  • Add the dedicated .NET answer guideline covering evidence-based generation/review advice, approvals, compatibility versus wire behavior, PATCH unset/default semantics, regeneration after CodeGenSuppress, NullableResponse, and CI troubleshooting. The two management SDK skills are recommendations for users, not claims of bot execution or substitutes for approvals. Other language guidelines remain unchanged.
  • Add .NET configuration, metadata consistency, citation, tenant filtering/retrieval, and guideline tests and documentation.

Validation

  • Knowledge-sync npm run build passed.
  • Targeted .NET knowledge configuration, configuration-loader and Markdown-file tests: 9 passed, including consistent metadata for the same document processed through every shared .NET entry.
  • Agent tenant guideline, source scoping and knowledge-tool tests: 45 passed. One existing live-Azure test excluded (-k 'not test_search_knowledge_tool'); no Azure settings supplied or changed.
  • All .NET and TypeSpec entries validate against the repository JSON schema. Whole-config validation previously identified 12 existing missing-metadata errors outside these entries; this PR does not add schema violations.
  • Requested upstream paths verified through GitHub API. Parent .NET guideline preserved verbatim.

Scope

.NET knowledge-source configuration and agent guidance only; no loader or processor changes. Configured .NET paths select sparse-checkout contents. Existing repository-relative processing scans the shared checkout for each entry, so this PR does not claim strict per-path ingestion or elimination of repeated scans.

No dev/live indexing, sync, deployment, or cloud resource changes performed. Selected skills currently contain SKILL.md without reference subdirectories; their directory selections include Markdown references if later added. Additional skills and broad SDK/engineering indexing are out of scope. Unrelated Windows long-path checkout deletions are excluded.

Keep repository-relative ingestion scoped to each selected documentation path and expose upstream C# emitter docs to the .NET tenant.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 2 pipeline(s).
70 pipeline(s) were filtered out due to trigger conditions.
There may be pipelines that require an authorized user to comment /azp run to run.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Repository-relative selections fail to discover release notes located beneath the selected directory.

1 open finding
What changed in this PR

Adds targeted .NET knowledge sources, repository-relative ingestion scoping, and dedicated .NET tenant guidance.

Changes:

  • Adds Azure and upstream C# emitter documentation sources.
  • Restricts ingestion to configured repository paths while preserving citations.
  • Adds .NET-specific guidance and regression tests.
File Description
knowledge-sync/​tests/​dotnetKnowledgeSources.test.ts Tests .NET source ingestion and metadata.
knowledge-sync/​tests/​configurationLoader.test.ts Tests repository-relative path selection.
knowledge-sync/​src/​services/​ConfigurationLoader.ts Adds selected-path tracking.
knowledge-sync/​src/​DailySyncKnowledge.ts Narrows file scanning and release-note discovery.
knowledge-sync/​README.md Documents source selection behavior.
knowledge-sync/​config/​knowledge-config.json Registers targeted .NET and upstream sources.
agent/​tests/​tenant_guideline_test.py Tests tenant guideline loading.
agent/​tests/​source_scoping_test.py Tests source visibility and citations.
agent/​tests/​knowledge_tools_test.py Tests filtered .NET retrieval.
agent/​README.md Documents .NET tenant behavior.
agent/​prompts/​tenants/​language_dotnet.md Adds dedicated .NET answer guidance.
agent/​config/​tenant_config.py Wires sources and guideline to the .NET tenant.

🧠 Review effort: Balanced

Comment on lines +486 to +495
// Path to release notes directory
const releaseNotesDir = path.join(sourceDir, 'release-notes');

if (source.includePath) {
const selectedPath = path.join(sourceDir, source.includePath);
const relativeReleasePath = path.relative(selectedPath, releaseNotesDir);
if (relativeReleasePath.startsWith('..') || path.isAbsolute(relativeReleasePath)) {
return;
}
}
@JialinHuang803
Jialin Huang (JialinHuang803) marked this pull request as draft October 13, 2026 07:11
Move shared ingestion changes to an independent main-based PR. Keep .NET configuration, metadata and citation tests using existing APIs, and document the prerequisite merge order.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Use consistent branded metadata across the shared .NET source and verify repeated processing cannot apply conflicting plane labels. Remove cross-PR prerequisite language.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Organize answers around diagnosis, fix and next action; place skill recommendations with the relevant workflow and remove historical attribution and case-specific PATCH guidance.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Add seven reviewed dotnet scenarios and wire the scenario into tenant routing and offline evaluation.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants