← Latest papers
💻 computer science

Toward Linking Declined Proposals and Source Code: An Exploratory Study on the Go Repository

This paper presents an LLM-driven approach to establish traceability links between declined proposals and source code in the Go repository, demonstrating that while the pipeline achieves high accuracy in selecting the correct code granularity, challenges remain due to redundant discussions lacking concrete implementation details.

Original authors: Sota Nakashima, Masanari Kondo, Mahmoud Alfadel, Aly Ahmad, Toshihiro Nakae, Hidenori Matsuzaki, Yasutaka Kamei

Published 2026-02-24
📖 5 min read🧠 Deep dive

Original authors: Sota Nakashima, Masanari Kondo, Mahmoud Alfadel, Aly Ahmad, Toshihiro Nakae, Hidenori Matsuzaki, Yasutaka Kamei

Original paper licensed under CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). This is an AI-generated explanation of the paper below. It is not written or endorsed by the authors. For technical accuracy, refer to the original paper. Read full disclaimer

Imagine you are a librarian in a massive, bustling library called the "Go Repository." This library doesn't just store books (code); it also stores thousands of letters of suggestion (proposals) from people who want to add new sections, rewrite chapters, or build new wings to the library.

Most of the time, when someone writes a letter suggesting a change, the librarians (maintainers) say, "Great idea!" and they actually build it. Researchers have spent years studying how to connect those "Great idea!" letters to the actual blueprints of the new buildings.

But what about the letters that get rejected?

In the past, if a librarian said, "No, we can't build that," the letter was just filed away in a dusty box. The paper you're asking about is a groundbreaking study that says: "Wait a minute! Those rejected letters are full of gold."

Even though the feature wasn't built, the letter often explains why it was rejected, what the writer was thinking, and what the constraints were. If a future writer wants to build something similar, they need to know why the last attempt failed. The problem? Those rejected letters are floating in the air, disconnected from the library's actual shelves.

The Mission: Building a Bridge to the "No" Pile

The authors of this paper wanted to build a magic bridge (a computer program) that automatically connects a "Rejected Letter" to the specific part of the library (the source code) it was talking about.

They faced a tricky puzzle:

  1. The Scale Problem: A letter might be talking about the whole "History Section" (Directory), a specific "Book" (File), or just a single "Paragraph" (Function). The computer needs to know which level to look at.
  2. The Ghost Problem: Since the feature was rejected, the new code doesn't exist yet. The computer can't just look for the new code; it has to guess where the old code is that the letter was trying to change.

The Solution: The "Super-Intelligent Librarian" (LLM)

To solve this, the researchers built a pipeline driven by a Large Language Model (LLM). Think of this LLM as a super-intelligent, hyper-observant librarian who has read every book in the library and every letter ever written.

Here is how their "Magic Bridge" works, step-by-step:

Step 1: The "Zoom Lens" Decision (Granularity)

First, the Super-Librarian reads the rejected letter and asks: "Is this person talking about the whole building, a specific room, or just a single sentence?"

  • Directory Level: "We need a new wing!" (The whole package).
  • File Level: "We need to rewrite this specific chapter." (The file).
  • Function Level: "We need to fix this one typo in this paragraph." (The function).
  • Result: The computer gets the "Zoom Lens" set to the right level.

Step 2: The "Treasure Hunt" (Localization)

Once the lens is set, the Super-Librarian goes hunting.

  • If the letter is about a Directory, the librarian scans the library map to find the right wing.
  • If it's about a File, they walk into that wing and find the specific book.
  • If it's about a Function, they open the book and find the exact paragraph.
  • The Trick: Unlike older methods that just looked for similar words (like a basic search engine), this Super-Librarian understands the context. They know that if someone says "fix the login button," they are talking about the login.go file, even if the words "login" and "button" aren't in the file name.

Step 3: The "Final Verdict" (Link Decision)

Finally, the librarian holds the letter in one hand and the code in the other and asks: "Do these two belong together?" If yes, they staple them together with a digital paperclip (a traceability link).

What Did They Find?

The researchers tested this on the official Go language library. Here is the "report card":

  1. It's Pretty Good at the Big Picture: The system was very good at figuring out if a letter was about a whole wing or a specific room (83.6% accuracy).
  2. It's Okay at the Details: When it came to finding the exact paragraph (function), it was a bit shaky (only 40% accuracy).
  3. The "Precision" Score: When the system did make a link, it was right about 64% of the time. That's a solid start for a task no one has ever tried to automate before!

Why Does It Sometimes Fail? (The "Why" Analysis)

The researchers dug into the failures and found two main reasons the Super-Librarian got confused:

  • The "Vague Request" Problem: Sometimes the letter said, "We need to make the system faster," but didn't say how or where. It's like telling a contractor, "Fix the house," without pointing to the broken window. The computer didn't know where to look.
  • The "Noise" Problem: Sometimes the letter was 50 pages long, full of arguments, jokes, and side conversations. The important clue (e.g., "change the auth function") was buried in the middle of a rant about coffee breaks. The computer got distracted by the noise.

The Big Takeaway

This paper is like discovering a new way to organize a library. Before, if you rejected an idea, you threw the paper away. Now, we have a tool that says: "Don't throw it away! Let's pin it to the wall right next to the code it was talking about."

This helps future developers see the "ghosts" of past decisions. They can walk up to a piece of code and see a note that says, "Hey, we thought about adding this feature back in 2024, but we decided against it because it would break security. Here's why."

It turns the "No" pile into a valuable history lesson, ensuring that the library learns from its past rejections, not just its successes.

Drowning in papers in your field?

Get daily digests of the most novel papers matching your research keywords — with technical summaries, in your language.

Try Digest →