<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Nerion Dev</title>
    <description>The latest articles on DEV Community by Nerion Dev (@3nerion7).</description>
    <link>https://dev.to/3nerion7</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4191386%2F21a1d343-1a3c-4306-8732-9711f8c21df9.jpg</url>
      <title>DEV Community: Nerion Dev</title>
      <link>https://dev.to/3nerion7</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/3nerion7"/>
    <language>en</language>
    <item>
      <title>ScopeTrace — find the clause, then question the promise</title>
      <dc:creator>Nerion Dev</dc:creator>
      <pubDate>Sun, 18 Oct 2026 03:48:25 +0000</pubDate>
      <link>https://dev.to/3nerion7/scopetrace-find-the-clause-then-question-the-promise-40nh</link>
      <guid>https://dev.to/3nerion7/scopetrace-find-the-clause-then-question-the-promise-40nh</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week2-2026-10-12"&gt;Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;AI disclosure: AI assistance was used for development, evaluation, independent agent reviews and this write-up. All examples are fictional. The measurements come from actual local runs; the limitations and failed cases are included below.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;The brief says &lt;strong&gt;USD 80&lt;/strong&gt;. The proposal says &lt;strong&gt;EUR 80&lt;/strong&gt;. Both sentences are about the same thing, and an embedding model can score them as a strong match. That is exactly why a match should start a review rather than finish it.&lt;/p&gt;

&lt;p&gt;ScopeTrace is a local second look at a freelance brief and proposal. Put one requirement on each line, paste the proposed deliverables, and retrieve up to three related clauses per requirement. Each suggestion shows a literal quote and its source line. You can inspect alternatives, select evidence, record a review decision and leave a question for the next conversation. Downloading the JSON report keeps those decisions alongside the original text; unreviewed items remain unreviewed.&lt;/p&gt;

&lt;p&gt;This is a narrow side-hustle hypothesis: a freelancer or small software team might value finding omissions and wording differences before agreeing to a fixed scope. It is not a contract checker. No paying customer, time saving or willingness to pay has been established.&lt;/p&gt;

&lt;p&gt;The example workflow is an import script. One proposal clause correctly paraphrases the requested error log. Another changes the currency. Another uploads records despite the request for local processing. These are different review tasks, even when all three produce related text.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/3Nerion7/scopetrace/blob/main/docs/demo.mp4" rel="noopener noreferrer"&gt;Watch the local application walkthrough&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The video is a captioned sequence of screenshots of the running application, operated by an AI agent with synthetic text. It is not a user study or a claim that the human author performed those clicks. It shows the normal sample, a review note, a downloaded report and the known error-log false positive.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/3Nerion7/scopetrace" rel="noopener noreferrer"&gt;Source, setup instructions and license&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The application code is MIT licensed. The model is downloaded separately from its pinned upstream revision; its Apache-2.0 declaration and the runtime dependencies are credited in the third-party notices. Model weights, local environments, client documents and private agent-session histories are excluded from the source package.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;The central retrieval step runs &lt;strong&gt;sentence-transformers/all-MiniLM-L6-v2&lt;/strong&gt;, an open model, through ONNX Runtime on a Windows CPU. No fine-tuning or hosted inference API is involved. The pinned revision is &lt;code&gt;1110a243fdf4706b3f48f1d95db1a4f5529b4d41&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The requirement and proposal passages are tokenized into overlapping chunks of at most 256 wordpieces, including special tokens. Masked mean pooling and L2 normalization follow the model card's embedding recipe. Cosine similarity ranks related passages. Original offsets and literal quotes make each suggestion inspectable; the browser displays the returned quote instead of applying JavaScript's different string-indexing convention to Python offsets.&lt;/p&gt;

&lt;p&gt;An explicit rules layer adds wording cues for recognized currency codes, numeric digits, duration phrases, platform names and negation words. A bare currency symbol needs clarification. These rules can miss context or flag harmless variations: they do not associate every amount with its service, convert business days to calendar time or resolve the scope of every negation. No cue means that these rules found nothing, not that the clauses agree.&lt;/p&gt;

&lt;p&gt;The interface uses plain HTML, CSS and JavaScript. A Python server binds only to &lt;code&gt;127.0.0.1&lt;/code&gt;, accepts bounded same-origin JSON requests and serves a fixed set of static files. Pasted content is rendered as text. The server does not write document history or request logs, and the interface has no analytics, cloud inference, database or localStorage. A report downloaded by the user does contain the pasted text and notes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Compare against a small baseline before adding a polished screen
&lt;/h3&gt;

&lt;p&gt;One set of 16 synthetic English cases was used for development. Another agent prepared 16 reserved cases, sealed before thresholds were chosen. The retrieval core and evaluation code, model manifest, package versions and thresholds were fixed before opening that second set. The interface and wording checks were added afterward.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Method&lt;/th&gt;
&lt;th&gt;Relevant top result / 13 positive cases&lt;/th&gt;
&lt;th&gt;Relevant result in first three&lt;/th&gt;
&lt;th&gt;Correct / accepted suggestions&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;MiniLM&lt;/td&gt;
&lt;td&gt;12/13&lt;/td&gt;
&lt;td&gt;13/13&lt;/td&gt;
&lt;td&gt;12/14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Jaccard&lt;/td&gt;
&lt;td&gt;4/13&lt;/td&gt;
&lt;td&gt;12/13&lt;/td&gt;
&lt;td&gt;4/15&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BM25&lt;/td&gt;
&lt;td&gt;4/13&lt;/td&gt;
&lt;td&gt;12/13&lt;/td&gt;
&lt;td&gt;4/14&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The ranking columns do not apply an abstention threshold. The final column uses a separate development threshold for each method. These are case-level retrieval results, not recall of every relevant clause. The lexical baselines already found a relevant passage in their top three for 12 of 13 positive cases; the larger observed improvement was which passage appeared first.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://github.com/3Nerion7/scopetrace/tree/main/benchmarks" rel="noopener noreferrer"&gt;raw reports&lt;/a&gt; preserve the examples and failures. The reserved set is now open and will not be presented as unseen evidence after any future tuning. Small, non-random, agent-authored English examples do not estimate commercial accuracy.&lt;/p&gt;

&lt;h3&gt;
  
  
  Keep the mistakes in the demo
&lt;/h3&gt;

&lt;p&gt;Two accepted semantic suggestions were wrong:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;For operation on a disconnected laptop, an installer shortcut outranked the actual no-internet clause, which came third. The internal cause of that order was not established.&lt;/li&gt;
&lt;li&gt;For a timestamped error-log requirement, no candidate offered a log. The model still accepted a sentence about saving PNG/JPEG files. It correctly rejected only two of the three absent cases.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;strong&gt;Known failure&lt;/strong&gt; button loads that already-open error-log case. Its purpose is to let a reviewer see the limitation directly, not to count the same case as a second independent evaluation. Contradictory sentences can also have high similarity. The application never turns a score into an automatic approval.&lt;/p&gt;

&lt;h3&gt;
  
  
  Modest local requirements
&lt;/h3&gt;

&lt;p&gt;The pinned model files total about 90.9 MB. A separate short four-candidate harness query took 5.44 ms median over 20 warm repetitions, with about 198.4 MiB peak process working set. Those are harness measurements, not full-document application latency, concurrent-user capacity or boot-cold startup. Windows file-cache state was not controlled. The application was tested on CPU; no GPU speed claim is made.&lt;/p&gt;

&lt;p&gt;The reviews found and corrected concrete implementation errors before preparing the public package, including malformed request lengths, unresolved currency symbols and differing duration wording. Test counts for HTTP validation and literal quotes are not extra cases of semantic accuracy.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;The open model makes the core operation runnable on the same computer as the documents without a per-query hosted inference bill. A pinned revision and visible evaluation also let someone inspect what produced the suggestions instead of trusting a changing remote endpoint. Replacing or fine-tuning the model is possible future work, not a feature evaluated here.&lt;/p&gt;

&lt;p&gt;Initial package and model setup requires internet. The application loads local files and has no cloud inference call. A Python-level network guard observed no socket requests during the measured model run, but that is not operating-system or native-code network isolation. This is a local prototype, not a certified privacy guarantee; browser extensions, OS memory and exported files remain outside that narrow claim.&lt;/p&gt;

&lt;p&gt;Upstream credit matters: &lt;a href="https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2" rel="noopener noreferrer"&gt;MiniLM's model card&lt;/a&gt; documents the model and pooling recipe. ONNX Runtime, Hugging Face Tokenizers and NumPy have their own licenses. ScopeTrace does not claim to have trained the model.&lt;/p&gt;

&lt;h2&gt;
  
  
  My First User
&lt;/h2&gt;

&lt;p&gt;No external-user study or payment has been recorded. The app has been exercised by agents with invented briefs and proposals, including deliberate failures. The next useful question is whether a freelancer finds the side-by-side evidence and clarification notes worth using on an actual scope review. That remains untested.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;p&gt;Overall challenge only. No partner category is claimed for technology that this project does not use.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
