Repository navigation
Use read-only search_paths for Business Applications discovery - #208
Open
Rakesh Navale (ranavale) wants to merge 7 commits into
Open
Rakesh Navale (ranavale) wants to merge 7 commits into
Rakesh Navale (ranavale) wants to merge 7 commits into
Conversation
Rakesh Navale (ranavale)
marked this pull request as ready for review
September 24, 2026 22:58
jeffandms
approved these changes
Sep 25, 2026
Rakesh Navale (ranavale)
force-pushed
the
users/ranavale/businessapps-search-paths-guidance
branch
from
September 25, 2026 16:43
02c84f7 to
5c53b98
Compare
Align Work IQ and preview plugin guidance with the request-visible search_paths schema, direct structural fetch paths, and automatic provider discovery. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Rakesh Navale (ranavale)
force-pushed
the
users/ranavale/businessapps-search-paths-guidance
branch
from
October 1, 2026 03:24
bbb76d9 to
c661b0a
Compare
Remove record upload and download instructions that should not be exposed in the public WorkIQ skill. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Resolve the Business Applications guidance conflict by preserving PR microsoft#208's read-only search_paths discovery policy while incorporating current mainline batching, schema, SQL, and retry guidance. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove the execute-work route and delegated environment work instructions from both WorkIQ plugin variants, and prevent the route from being advertised again. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Validate schema-driven search_paths inputs instead of requiring hard-coded query or filter wording that the hardened guidance intentionally removed. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
thejeffand
approved these changes
Oct 15, 2026
srikanms
approved these changes
Oct 17, 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
search_paths, neverdo_action("/businessapps/me").fetch("/businessapps/environments/").search_pathsschema: send the required natural-languagequeryor legacyfilter, never both.do_actionfor genuine discovered operations such as environmentSQL, Custom APIs, app operations, in-app MCP tools, and delegated environment
work.
workiqandworkiq-preview, with adomain-owned preview reference that follows the guidance architecture merged
in docs: reapply WorkIQ guidance from PR #197 #209.
inventory, provider fan-out, selector rejection, action ownership, and
denial behavior.
Observed issue this prevents
The previous guidance could funnel a read-only Business Applications intent
first into:
That is a POST-shaped call. For callers whose effective Work IQ policy denies
POST or mutation-shaped traffic, it can be rejected before any grounded
Business Applications path is returned. The flow then never reaches
search_pathsor the appropriate structuralfetch.This PR makes that route an explicit prohibition even when it remains exposed
by the service. Semantic discovery starts with
search_paths; environmentinventory goes directly to
fetch.Current routing contract
search_pathswith the one acceptedqueryorfilterinputfetch("/businessapps/environments/")fetchon the exact returned pathget_schemaon the exact returned pathdo_actionon the exact discovered pathThere is no
backend,source, orproviderselector. Work IQ searches everycatalog and provider enabled for the current tenant and caller.
Conflict resolution against #209
This branch is rebased onto
mainat821949b, which includes #209.workiq-previewskill rather thanrestoring the previous full-document version.
pattern for mail, calendar, files, Teams, and other domains.
Applications path discovery remains separate from semantic evidence
retrieval.
needed to remove the obsolete discovery route.
conflicts with unknown-path discovery.
Validation
git diff --checktests/workiq-guidancesuite passes./businessapps/mediscovery instruction across eitherplugin, including contradictions hidden in the same paragraph or sentence;
search_pathsfor semantic Business Applications discovery;fetch("/businessapps/environments/")for environmentinventory;
invented selectors;
query/legacy-filterexamples, includingmalformed, scalar, null, array, and mixed-envelope cases;
do_actioncategories; andunsupported remediation claims.
account:
search_paths(filter)returned Business Applicationspaths;
fetch("/businessapps/environments/")returned the expected environmentinventory.
filter,required
query, and direct environmentfetch; discovery traces containedno mutation calls.
significant issues remain.
Scope and risk
This changes plugin guidance and its validation contracts. It does not modify
the Work IQ service, provider routing, tool schemas, tenant policy, or AppIQ
runtime behavior. Genuine Business Applications actions and writes remain
available and retain normal confirmation, privilege, and policy boundaries.