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 .
Examiner’s Note (EN)
The prior art rejections below cite particular paragraphs, columns, and/or line numbers in the references for the convenience of the applicant. Although the specified citations are representative of the teachings in the art and are applied to the specific limitations within the individual claim, other passages and figures may apply as well. It is respectfully requested that, in preparing responses, the applicant fully consider the references in their entirety as potentially teaching all or part of the claimed invention, as well as the context of the passage as taught by the prior art.
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.
Claim(s) 1-3, 6, 7 and 9-10 are rejected under 35 U.S.C. 103 as being unpatentable over Pr-Agent (github.com/The-PR-Agent) in view of Yaml Tabular Viewer (marketplace.visualstudio.com/items?itemName=DinaChiganbayeva.yaml-tabular-viewer)
Regarding Claim 1, 9, and 10, Pr-Agent teaches An information processing device comprising: at least one memory configured to store instructions; and at least one processor configured to execute the instructions to: (Pr-Agent, Pg. 20, Install.md)
acquire change history data concerning a change of software (PR-Agent, Pg. 10, Describe Tool, "The describe tool scans the PR code changes, and automatically generates PR (Pull Request) description - title, type, summary, code walkthrough and labels. It can be invoked manually by commenting on any PR:")
acquire a prompt which is described and instructs to create a comprehension table based on the change history data (Pr-Agent, Pg 29, "[pr_description_prompt]
system="""You are CodiumAI-PR-Reviewer, a language model designed to review git pull requests.
Your task is to provide full description of the PR content.
- Make sure not to focus the new PR code (the '+' lines).
- Notice that the 'Previous title', 'Previous description' and 'Commit messages' sections may be partial, simplistic, non-informative or not up-to-date. Hence, compare them to the PR diff code, and use them only as a reference.
- If needed, each YAML output should be in block scalar format ('|-')…
You must use the following YAML schema to format your answer:
```yaml
PR Title:
type: string
description: an informative title for the PR, describing its main theme
PR Type:
type: array
{%- if enable_custom_labels %}
description: One or more labels that describe the PR type. Don't output the description in the parentheses.
{%- endif %}
items:
type: string
enum:")
interpret the prompt using a natural language model and create a comprehension
@CodiumAI-Agent /review
and the agent will respond with a review of your PR")
However, Pr-Agent is not relied on for:
Comprehension table
store the comprehension table in a storage unit
Yaml To Table teaches comprehension table (Yaml to Table, Pg. 1, "YAML-to-Table Extension
The YAML-to-Table extension for Visual Studio Code allows you to convert YAML files into a tabular form and provides functionalities to edit, save, export to CSV, and delete rows in the table.")
store the comprehension table in a storage unit (Yaml to Table, Pg. 1, "YAML-to-Table Extension
The YAML-to-Table extension for Visual Studio Code allows you to convert YAML files into a tabular form and provides functionalities to edit, save, export to CSV, and delete rows in the table.")
PR-Agent and Yaml to Table are analogous art because they are from the same field of endeavor in optimizing code documentation. Yaml To Table teaches the known method of formatting Yaml output to spreadsheet style tables for ease of viewing. Before the effective filing date of the invention, it would have been obvious to a person of ordinary skill in the art, to combine PR-Agent and Yaml to Table to present PR-Agent’s output in a table format for ease of viewing. Note MPEP 2143- (D) Applying a known technique to a known device (method, or product) ready for improvement to yield predictable results.
Regarding Claim 2, PR-Agent in view of Yaml To Table teaches the information processing device according to claim 1, wherein the comprehension table includes a comprehension table of each change history of the software (Pr-Agent, Pg. 27, Pr Description Prompt, EN: Class PRDescriptoin shows the system walking through the different files to produce the change history for each file. See lines 37-44)
a comprehension table of a folder structure for storing data concerning the software (Pr-agent, Pg. 11, Describe, Fig. 1 below, the figure shows the PR main files walkthrough with the folder structure)
PNG
media_image1.png
438
773
media_image1.png
Greyscale
Regarding Claim 3, PR-Agent in view of Yaml To Table teaches the information processing device according to claim 1, wherein the change history data are generated using Git (Pr-Agent, Pg. 39, Usage, "git provider The git_provider field in the configuration file determines the GIT provider that will be used by PR-Agent. Currently, the following providers are supported: "github", "gitlab", "azure", "codecommit", "local", "gerrit"")
the comprehension table includes a commit history comprehension table (Pr-Agent, Pg. 27, Pr Description Prompt, "
Commit messages:
'
{{ commit_messages_str }}" EN: shows the commit messages included in the output from the git diff command)
a folder structure comprehension table (Pr-agent, Pg. 11, Describe Fig. 1)
Regarding Claim 6, PR-Agent in view of Yaml To Table teaches the information processing device according to claim 1, wherein the prompt includes an instruction of each item to be included in the comprehension table to be created (Pr-agent, Pg. 27-28, PR Describe prompt, lines 70-91 show instructions for the output of each item. Additionally, the prompt from 2-16 shows the instructions for the LLM for each item along with accommodation for user specific instructions.)
Regarding Claim 7, PR-Agent in view of Yaml To Table teaches the information processing device according to claim 1, wherein the comprehension table is described in the natural language, (Pr-agent, Pg. 10-11, Describe, Fig. 1 shows the table items described in natural language)
wherein the processor is further configured to acquire a question described in the natural language (Pr-agent, Pg. 1, Ask, "The ask tool answers questions about the PR, based on the PR code changes. It can be invoked manually by commenting on any PR:")
interpret the question using the natural language, generate an answer with respect to the question by referring to the comprehension table, and output the answer generated (Pr-agent, Pg1, the Ask command interprets the question and outputs the answer.)
Claim(s) 4, 5, and 8 are rejected under 35 U.S.C. 103 as being unpatentable over Pr-Agent (github.com/The-PR-Agent) in view of Yaml Tabular Viewer (marketplace.visualstudio.com/items?itemName=DinaChiganbayeva.yaml-tabular-viewer) and further in view of Aider (aider.chat)
Regarding Claim 4, PR-Agent in view of Yaml To Table teaches the information processing device according to claim 3, wherein the comprehension table includes a release note comprehension table (Pr-Agent, Pg. 49, Update Change Log, "The update_changelog tool automatically updates the CHANGELOG.md file with the PR changes. It can be invoked manually by commenting on any PR:
/update_changelog" also pg. 46)
Aider teaches a branch history comprehension table (Aider, Pg. 4-5, Issue 116, "One way to do this could be that the /add command could add changes, in the form of a range of commits, a branch, a commit or similar. This can be designed in various ways, but to get an idea of what this could enable we can look at an example" EN: note in the example the branch information is extracted and fed to the LLM. Additionally, Pg. 5, "/run diff main on feature branches to get context into the chat (particularly useful for documentation)" )
PR-Agent, Yaml to Table, and Aider are analogous art because they are from the same field of endeavor in optimizing code documentation. Aider teaches the known method of mapping out repositories of code including branches in an easy to view format. Before the effective filing date of the invention, it would have been obvious to a person of ordinary skill in the art, to combine PR-Agent, Yaml to Table and Aider to provide dependency context to PR-Agent’s LLM prompts to achieve more accurate results from the LLM. Note MPEP 2143- (D) Applying a known technique to a known device (method, or product) ready for improvement to yield predictable results.
Regarding Claim 5, PR-Agent in view of Yaml To Table and further in view of Aider teaches the information processing device according to claim 4. Aider teaches wherein the comprehension table includes a dependency comprehension table which indicates each dependency among names of a variable, a function, and a class (Aider, Pg. 28-29, Repo Map, “Using a repo map to provide context: Aider sends a repo map to GPT along with each request from the user to make a code change. The map contains a list of the files in the repo, along with the key symbols which are defined in each file. It shows how each of these symbols are defined in the source code, by including the critical lines of code for each definition…Mapping out the repo like this provides some key benefits:
GPT can see classes, methods and function signatures from everywhere in the repo. This alone may give it enough context to solve many tasks. For example, it can probably figure out how to use the API exported from a module just based on the details shown in the map.
If it needs to see more code, GPT can use the map to figure out by itself which files it needs to look at in more detail. GPT will then ask to see these specific files, and aider will automatically add them to the chat context…
Tree-sitter parses source code into an Abstract Syntax Tree (AST) based on the syntax of the programming language. Using the AST, we can identify where functions, classes, variables, types and other definitions occur in the source code. We can also identify where else in the code these things are used or referenced." )
PNG
media_image2.png
520
701
media_image2.png
Greyscale
Regarding Claim 8, PR-Agent in view of Yaml To Table teaches the information processing device according to claim 1, wherein the comprehension table includes a folder structure comprehension table described in the natural language, (Pr-Agent, Pg. 11, Fig. 1)
Aider teaches wherein the processor is further configured to acquire an instruction which is described in the natural language and indicates to organize a folder structure; interpret the instruction using the natural language and organize the folder structure of the change history data (Aider, Pg. 8, Edit Block Prompts, "Once you understand the request you MUST:
1. List the files you need to modify. Only suggest changes to a *read-write* files. Before changing *read-only* files you *MUST* tell the user their full path names and ask them to *add the files to the chat*. End your reply and wait for their approval.
2. Think step-by-step and explain the needed changes with a numbered list of short sentences.
3. Describe each change with a *SEARCH/REPLACE block* per the examples below….
Only *SEARCH/REPLACE* files that are *read-write*.
…
If you want to put code in a new file, use a *SEARCH/REPLACE block* with:
- A new file path, including dir name if needed
- An empty `SEARCH` section
- The new file's contents in the `REPLACE` section
""" and Pg. 21 Issue 168, "Allow creation of new file src/screens/HomeScreen1.js? y …
Path(full_path).parent.mkdir(parents=True, exist_ok=True)" EN: Aider creates files, directories, and asks for permissions before creating new directories)
For motivation to combine see Claim 4.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Gutierrez et al. (US-20230252233-A1): discloses a framework for generating and translating software.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to AMIR DARWISH whose telephone number is (571)272-4779. The examiner can normally be reached 7:30-5:30 M-Thurs.
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, Lewis Bullock can be reached on 571-272-3759. 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.
/A.E.D./Examiner, Art Unit 2199 /LEWIS A BULLOCK JR/Supervisory Patent Examiner, Art Unit 2199