Prosecution Insights
Last updated: August 18, 2026
Application No. 18/638,971

NAVIGATION FROM EXTERNAL CODE SNIPPET SYMBOLS

Non-Final OA §102§103
Filed
Apr 18, 2024
Examiner
NGUYEN, PHILLIP H
Art Unit
2191
Tech Center
2100 — Computer Architecture & Software
Assignee
Microsoft Technology Licensing, LLC
OA Round
1 (Non-Final)
91%
Grant Probability
Favorable
1-2
OA Rounds
6m
Est. Remaining
99%
With Interview

Examiner Intelligence

Grants 91% — above average
91%
Career Allowance Rate
548 granted / 605 resolved
+35.6% vs TC avg
Moderate +12% lift
Without
With
+11.7%
Interview Lift
resolved cases with interview
Typical timeline
2y 10m
Avg Prosecution
10 currently pending
Career history
619
Total Applications
across all art units

Statute-Specific Performance

§101
16.3%
-23.7% vs TC avg
§103
41.8%
+1.8% vs TC avg
§102
30.5%
-9.5% vs TC avg
§112
7.4%
-32.6% vs TC avg
Black line = Tech Center average estimate • Based on career data from 605 resolved cases

Office Action

§102 §103
DETAILED ACTION Notice of Pre-AIA or AIA Status The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA . This Office Action is in response to the filing date of 04/18/2024. Claims 1-20 are pending and have been considered below. Claim Rejections - 35 USC § 102 The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action: A person shall be entitled to a patent unless – (a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention. Claims 1, 6, 7, and 16-19 are rejected under 35 U.S.C. 102(a)(1) as being anticipated by U.S. Patent. No. 9785421 to Neathway. Per claim 1, Neatherway teaches a software development method performed within a workspace of a project in a computing system, the project having a codebase, the method comprising automatically: receiving, at a software development tool, a selection of a symbol, the symbol contained in a snippet of source code, the snippet situated inside the workspace but outside the codebase (see at least col.4, lines 32-50 “The analysis engine 140 can identify source code that introduces external dependencies by using a predefined list of external dependency targets. In other words, the system can receive data representing all external software modules (i.e. snippets) whose external dependencies are to be analyzed… the data can include an identifier (i.e. symbol) for the external software module, and optionally, a version”); finding a location of a target, the target related to the symbol, the location outside the snippet and inside the workspace, the location unknown to the software development tool prior to the finding (see at least col.4, lines 8-20 “The analysis engine 140 can generate external dependency data 115 that records various items of information for each statement requiring an external software module in the snapshots 157. The external dependency data 115 can include, for each external dependency, data representing a snapshot in which the external dependency occurs, a location within the snapshot, and an external dependency target identifier. The location can include a file path, a location within a file, or both, of the external dependency source, which is the source code statement that references the external dependency target…”); and supplying the location of the target to the software development tool (see at least col.4, lines 62-63 “The attribution engine 130 receives the external dependency data 115…”). Per claims 6 and 17-19, Neatherway further teaches: comprising the software development tool utilizing the location by performing at least one of: displaying information of the symbol which includes at least one of: a variable type, a signature, a routine result type, a routine parameter name, a routine parameter type; highlighting a portion of source code which contains the symbol, the highlighting computed according to a semantic analysis of the source code; navigating to the location in a user interface of the software development tool; submitting information about the symbol to an artificial intelligence agent; providing an edit suggestion for a source code which contains the symbol; providing an autocompletion list for a source code which contains the symbol; furnishing a piece of source code which contains a definition of the symbol; furnishing a source code statement to import a definition of the symbol; displaying a current value of a variable related to the symbol; renaming a variable which is related to the symbol; or refactoring a piece of source code which is related to the symbol (see at least col.4, lines 62-67 “…The attribution engine 130 can attribute changes in external dependencies between snapshots to a particular developer entity, to a particular snapshot, or both and represent such information as attribution information 125…”). Per claim 7, Neatherway further teaches: wherein the target location is in at least one of: a non-comment portion in a source code in the codebase of the project; a set of globally defined symbols in the project; a set of programming language built-in symbols; a header file in a source code in the codebase of the project; a symbol definition file in a source code in the codebase of the project; an executable generated at least in part from the codebase of the project; a different snippet obtained via an interface to an artificial intelligence agent prior to receiving the selection of the symbol; a debugger information file; or a web page outside the project (see at least col.4, lines 48-50 “…For each external software module, the data can include an identifier for the external software module…”). Per claim 16, Neatherway teaches a computer-readable storage device configured with data and instructions which upon execution by a processor perform a software development method in a workspace of a project in a computing system, the project having a codebase, the method comprising automatically: receiving, via a user interface of a software development tool, a selection of a symbol, the symbol contained in a snippet of source code, the snippet situated inside the workspace but outside the codebase (see at least col.4, lines 32-50 “The analysis engine 140 can identify source code that introduces external dependencies by using a predefined list of external dependency targets. In other words, the system can receive data representing all external software modules (i.e. snippets) whose external dependencies are to be analyzed…the data can include an identifier (i.e. symbol) for the external software module, and optionally, a version”); finding a location of a target, the location outside the snippet and inside the workspace, the target related to the symbol by a relationship comprising at least one of: a declaration, a definition, a routine implementation, a reference to the symbol, a caller of the symbol, or a callee of the symbol, a data type, a routine signature, a routine result type, a routine parameter name, a routine parameter type (see at least col.4, lines 8-20 “The analysis engine 140 can generate external dependency data 115 that records various items of information for each statement requiring an external software module in the snapshots 157. The external dependency data 115 can include, for each external dependency, data representing a snapshot in which the external dependency occurs, a location within the snapshot, and an external dependency target identifier. The location can include a file path, a location within a file, or both, of the external dependency source, which is the source code statement that references the external dependency target…”); and utilizing the location of the target in the software development tool (see at least col.4, lines 62-63 “The attribution engine 130 receives the external dependency data 115…”). Claim Rejections - 35 USC § 103 The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action: A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made. Claims 2-5, 8-15, are rejected under 35 U.S.C. 103 as being unpatentable over U.S. Patent No. 9785421 in view of U.S. Pub. No. 20210081848 to Polleri. Per claim 2, Neatherway does not explicitly teach: obtaining the snippet via an interface to an artificial intelligence agent. Polleri teaches an analogous art relates to development of software, comprising: obtaining a snippet via an interface to an artificial intelligence agent (see at least paragraph [0263] “… a model execution engine (e.g., within a code integration request prediction server or plug-in within a software development environment) may receive input data corresponding to a request to integrate an external code base into a source code project or component. Such input data may identify one or more external code bases (e.g., open source software functions, libraries, etc.) associated with the source code project and component, including the external code base to be integrated and/or additional external code bases that have been previous integrated within the same project or component…”). It would have been obvious for a person of an ordinary skilled in the art as of the effective filing date of the claimed invention to modify the teaching of Neatherway to incorporate the teaching of Polleri to use an artificial intelligence to identify external code. One would have been motivated to use artificial intelligence for finding code because it is time efficiency. Per claim 3, Neatherway does not explicitly teach: obtaining the snippet via a paste operation which corresponds to a copy operation which was performed on at least one of: a web page, or a different project. Polleri teaches an analogous art relates to development of software, comprising: obtaining a snippet via a paste operation which corresponds to a copy operation which was performed on at least one of: a web page, or a different project (see at least paragraph [0267] “…the integration of an external code base (e.g., open source library) may take many different forms, including directly copying in (e.g., cutting and pasting) commented portions of source code from an open source library, or linking to an open source library and invoking one or more functions, etc.”). Per claim 4, Neatherway further teaches wherein the symbol has a name (see at least col.4, lines 32-50 “…the system can receive data representing all external software modules (i.e. snippets) whose external dependencies are to be analyzed…the data can include an identifier (i.e. symbol) for the external software module, and optionally, a version”) and finding the location of the target comprises at least one of: searching for the symbol name in the context; searching for the symbol in a symbol list created using a code snippet from the context; or searching for the symbol in a parse tree created using a code snippet from the context (see at least col.4, lines 8-20 “The analysis engine 140 can generate external dependency data 115 that records various items of information for each statement requiring an external software module in the snapshots 157. The external dependency data 115 can include, for each external dependency, data representing a snapshot in which the external dependency occurs, a location within the snapshot, and an external dependency target identifier. The location can include a file path, a location within a file, or both, of the external dependency source, which is the source code statement that references the external dependency target…”) but does not explicitly teach: code snippet is in an output produced by an artificial intelligence agent in response to a context submitted to the artificial intelligence agent Polleri teaches an analogous art relates to development of software, comprising: code snippet is in an output produced by an artificial intelligence agent in response to a context submitted to the artificial intelligence agent (see at least paragraph [0263] “…a model execution engine (e.g., within a code integration request prediction server or plug-in within a software development environment) may receive input data corresponding to a request to integrate an external code base into a source code project or component. Such input data may identify one or more external code bases (e.g., open source software functions, libraries, etc.) associated with the source code project and component, including the external code base to be integrated and/or additional external code bases that have been previous integrated within the same project or component…”). It would have been obvious for a person of an ordinary skilled in the art as of the effective filing date of the claimed invention to modify the teaching of Neatherway to incorporate the teaching of Polleri to use an artificial intelligence to identify external code. One would have been motivated to use artificial intelligence for finding code because it is time efficiency. Per claim 5, Neatherway further teaches: finding the location of the target comprises: identifying at least two candidate locations of the target; and choosing a particular candidate location as the location of the target, the choosing computed from at least one of: an indication whether the particular candidate location is in the context submitted to the artificial intelligence agent, or an indication whether a data type employed at the particular candidate location matches a data type employed in the code snippet (see at least col.6, lines 12-23 “The system determines matching files in the snapshot S and in the snapshot T (215). The data representing the snapshots can include data about which files of the snapshot S correspond to files of the snapshot T. For example, if some files from the snapshot S were moved to a new directory or simply renamed in the snapshot T, the data can include cross-reference data representing a correspondence of paths for files in the snapshot S and files in the snapshot T. Two files having corresponding paths can be referred to as files having “matching paths.” In some implementations, the system by default considers files to correspond if they have a same path in the snapshot S and in the snapshot T”). Neatherway does not explicitly teach: wherein the code snippet is in an output produced by an artificial intelligence agent in response to a context submitted to the artificial intelligence agent. Polleri teaches an analogous art relates to development of software, comprising: code snippet is in an output produced by an artificial intelligence agent in response to a context submitted to the artificial intelligence agent (see at least paragraph [0263] “… a model execution engine (e.g., within a code integration request prediction server or plug-in within a software development environment) may receive input data corresponding to a request to integrate an external code base into a source code project or component. Such input data may identify one or more external code bases (e.g., open source software functions, libraries, etc.) associated with the source code project and component, including the external code base to be integrated and/or additional external code bases that have been previous integrated within the same project or component…”). It would have been obvious for a person of an ordinary skilled in the art as of the effective filing date of the claimed invention to modify the teaching of Neatherway to incorporate the teaching of Polleri to use an artificial intelligence to identify external code. One would have been motivated to use artificial intelligence for finding code because it is time efficiency. Per claim 8, Neatherway teaches a computing system, comprising: at least one digital memory; a project codebase residing in the at least one digital memory; an agent interface to an artificial intelligence agent; a workspace, the workspace comprising the project codebase, the agent interface, and a software development tool (see at least FIG. 1); at least one processor in operable communication with the at least one digital memory, the at least one processor configured to perform a software development method which comprises (a) receiving a selection of a symbol, the symbol contained in a snippet of source code, the snippet situated inside the workspace but outside the codebase (see at least col.4, lines 32-50 “The analysis engine 140 can identify source code that introduces external dependencies by using a predefined list of external dependency targets. In other words, the system can receive data representing all external software modules (i.e. snippets) whose external dependencies are to be analyzed…the data can include an identifier (i.e. symbol) for the external software module, and optionally, a version”), (b) finding a location of a target, the target related to the symbol, the location outside the snippet and inside the workspace (see at least col.4, lines 8-20 “The analysis engine 140 can generate external dependency data 115 that records various items of information for each statement requiring an external software module in the snapshots 157. The external dependency data 115 can include, for each external dependency, data representing a snapshot in which the external dependency occurs, a location within the snapshot, and an external dependency target identifier. The location can include a file path, a location within a file, or both, of the external dependency source, which is the source code statement that references the external dependency target…”), and (c) supplying the location of the target to the software development tool (see at least col.4, lines 62-63 “The attribution engine 130 receives the external dependency data 115…”). Neatherway does not explicitly teach an agent interface to an artificial intelligence agent. Polleri teaches an analogous art relates to development of software, comprising: an agent interface to an artificial intelligence agent (see at least paragraph [0263] “… a model execution engine (e.g., within a code integration request prediction server or plug-in within a software development environment) may receive input data corresponding to a request to integrate an external code base into a source code project or component. Such input data may identify one or more external code bases (e.g., open source software functions, libraries, etc.) associated with the source code project and component, including the external code base to be integrated and/or additional external code bases that have been previous integrated within the same project or component…”). It would have been obvious for a person of an ordinary skilled in the art as of the effective filing date of the claimed invention to modify the teaching of Neatherway to incorporate the teaching of Polleri to use an artificial intelligence. The artificial intelligence can be used for identify external code for example. One would have been motivated to use artificial intelligence for finding source code because it is time efficiency. An artificial intelligence can perform a quickly search for source code. Per claim 9, Neatherway further teaches: wherein the target includes at least one of: a declaration of the symbol; a definition of the symbol; a definition of a type of the symbol; a definition of a routine signature of the symbol; an implementation of a routine of the symbol; a reference to the symbol; a multi-member list of all references to the symbol found in the project; a caller of the symbol; a callee of the symbol; a multi-member list of all callers of the symbol found in the project; or a multi-member list of all callees of the symbol found in the project (see at least col.4, lines 8-20 “The analysis engine 140 can generate external dependency data 115 that records various items of information for each statement requiring an external software module in the snapshots 157. The external dependency data 115 can include, for each external dependency, data representing a snapshot in which the external dependency occurs, a location within the snapshot, and an external dependency target identifier. The location can include a file path, a location within a file, or both, of the external dependency source, which is the source code statement that references the external dependency target…”). Per claim 10, Neatherway further teaches: wherein the target location is in at least one of: a non-comment portion in a source code in the codebase of the project; a set of globally defined symbols in the project; a set of programming language built-in symbols; a header file in a source code in the codebase of the project; a symbol definition file in a source code in the codebase of the project; an executable generated at least in part from the codebase of the project; a different snippet obtained via an interface to an artificial intelligence agent prior to receiving the selection of the symbol; or a debugger information file (see at least col.4, lines 48-50 “…For each external software module, the data can include an identifier for the external software module…”). Per claim 11, Neatherway further teaches: wherein the snippet containing the symbol resides in the agent interface, and the target location is outside the agent interface (see at least col.4, lines 32-50 “…the data can include an identifier (i.e. symbol) for the external software module, and optionally, a version”) Per claim 12, Neatherway further teaches: wherein the snippet containing the symbol is a first snippet, the first snippet resides in the agent interface, and the target location is in a second snippet which also resides in the agent interface (see at least col.2, lines 23-42 “…Each external dependency also has an external dependency target, which is a set of external software modules. Thus, if source code references an external software module belonging to an external dependency target, the source code can be described as having an external dependency on the external dependency target. Therefore, even if two external dependencies with different external dependency sources reference different portions of an external software module, both external dependencies would be considered to have the same external dependency target. In addition, because the external dependency target is defined as a set, even if two external dependencies reference different versions of an external software module, both external dependencies could still be considered to have the same external dependency target if the different versions both belonged to the same external dependency target…”). Per claim 13, Polleri further teaches: wherein the snippet containing the symbol resides in a chat view in a user interface of the software development tool (see at least paragraph [0120] “The messaging application may include, for example, over-the-top (OTT) messaging channels (such as Facebook Messenger, Facebook WhatsApp, WeChat, Line, Kik, Telegram, Talk, Skype, Slack, or SMS), virtual private assistants (such as Amazon Dot, Echo, or Show, Google Home, Apple HomePod, etc.), mobile and web app extensions that extend native or hybrid/responsive mobile apps or web applications with chat capabilities, or voice based input (such as devices or apps with interfaces that use Siri, Cortana, Google Voice, or other speech input for interaction)”). Per claim 14, Neatherway further teaches: wherein the snippet containing the symbol resides in a source code editor user interface of the software development tool (see at least col.7, lines 16-25 “…the source code changes that introduce external dependencies are due to a developer adding source code that references modules belonging to the external dependency target or modifying source code so that it newly references modules belonging to the external dependency target…”). Per claim 15, Neatherway further teaches: wherein the target includes an instance of a name of the symbol (see at least col.2, lines 19-21 (“…an “external dependency” is an instance of source code within a project that references a software module that is not part of the project itself. Such a software module may thus be referred to as an external software module. Each external dependency has an external dependency source, which is the source code within the project that references an external software module…”). Claim 20 is rejected under 35 U.S.C. 103 as being unpatentable over U.S. Patent No. 9785421 in view of U.S. Pub. No. 20180024911 to Kruszewski. Per claim 20, Neatherway does not explicitly teach: wherein the software development tool comprises a debugger, the target comprises a variable, and utilizing the location of the target in the software development tool comprises displaying, in the user interface in the debugger, a current value of the variable. Kruszewski teaches an analogous art relates to software debugging, comprising: a debugger, the target comprises a variable, and utilizing the location of the target in the software development tool comprises displaying, in the user interface in the debugger, a current value of the variable (see at least paragraph [0035] “Example methods, apparatuses, and systems (e.g., machines) are presented for a software code debugger tool. In some embodiments, the code debugger tool may be configured to access source code intended to be examined for debugging…A user interface and display component of the debugger tool may allow for the user to step through the plurality of states—going forward, backward, or jumping around—so as to examine how the application was executed and what exact portions of the source code correspond to each recorded state. Various visual indicators may also provide additional annotations to aid in debugging, such as displaying the content of variables in a visual annotation showing their history of values, providing an in-line marker to indicate which line of code is being executed at the current examined state, and providing a temporal status indicator to provide context to the user about what the present state represents in relation to specific functions in the source code…”). It would have been obvious for a person of an ordinary skilled in the art as of the effective filing date of the claim invention to modify the teaching of Neatherway to incorporate the teaching of Kruszewski to include a debugger for debugging the source code. One would have been motivated to do so in order to detect bugs in the source code. Conclusion The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. US20220244938 relates to software development. US 20230336340 relates to software development for machine learning. Any inquiry concerning this communication or earlier communications from the examiner should be directed to PHILLIP H NGUYEN whose telephone number is (571)270-1070. The examiner can normally be reached Monday-Friday 9:00AM-5:00PM. Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice. If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Wei Zhen can be reached at (571) 272-3708. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300. Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000. /PHILLIP H NGUYEN/Primary Examiner, Art Unit 2191
Read full office action

Prosecution Timeline

Apr 18, 2024
Application Filed
May 05, 2026
Non-Final Rejection mailed — §102, §103
Jul 23, 2026
Applicant Interview (Telephonic)
Jul 23, 2026
Examiner Interview Summary

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12699547
GENERATING AND VALIDATING BLOCKCHAIN TRANSACTIONS
3y 1m to grant Granted Aug 04, 2026
Patent 12688018
MULTIPATHING FOR SOURCE CODE EXECUTION
2y 8m to grant Granted Jul 21, 2026
Patent 12681697
API SIMPLIFICATION PROCESS
2y 7m to grant Granted Jul 14, 2026
Patent 12681707
COMPILATION SYSTEM AND METHOD
2y 6m to grant Granted Jul 14, 2026
Patent 12681709
Late Binding and Package Translation for Multi-Cloud Deployment
2y 4m to grant Granted Jul 14, 2026
Study what changed to get past this examiner. Based on 5 most recent grants.

Strategy Recommendation AI-generated — please review before filing

Get a prosecution strategy drawn from examiner precedents, rejection analysis, and claim mapping.
Typically takes 5-10 seconds — AI-generated, attorney review required before filing

Prosecution Projections

1-2
Expected OA Rounds
91%
Grant Probability
99%
With Interview (+11.7%)
2y 10m (~6m remaining)
Median Time to Grant
Low
PTA Risk
Based on 605 resolved cases by this examiner. Grant probability derived from career allowance rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month