<?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: Tanzil Ahmed</title>
    <description>The latest articles on DEV Community by Tanzil Ahmed (@tanzil_ahmed_e6a826eee8c4).</description>
    <link>https://dev.to/tanzil_ahmed_e6a826eee8c4</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%2F4184875%2F39e2737e-b474-409d-863d-801780da12fc.png</url>
      <title>DEV Community: Tanzil Ahmed</title>
      <link>https://dev.to/tanzil_ahmed_e6a826eee8c4</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tanzil_ahmed_e6a826eee8c4"/>
    <language>en</language>
    <item>
      <title>ScopeProof: An evidence-first answer to “one more thing”</title>
      <dc:creator>Tanzil Ahmed</dc:creator>
      <pubDate>Thu, 15 Oct 2026 19:36:37 +0000</pubDate>
      <link>https://dev.to/tanzil_ahmed_e6a826eee8c4/scopeproof-an-evidence-first-answer-to-one-more-thing-3odi</link>
      <guid>https://dev.to/tanzil_ahmed_e6a826eee8c4/scopeproof-an-evidence-first-answer-to-one-more-thing-3odi</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;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;“Could we add customer login? It should be a quick change.”&lt;/p&gt;

&lt;p&gt;A contact form and a login system can both sound like ordinary website work. But if the agreed price covers one and excludes the other, someone has to explain that difference before the work starts.&lt;/p&gt;

&lt;p&gt;That is the problem I chose for &lt;strong&gt;ScopeProof&lt;/strong&gt;: help a freelancer check a new request against the agreement and prepare a clear response.&lt;/p&gt;

&lt;p&gt;The app reviews up to eight requests and suggests &lt;strong&gt;Included&lt;/strong&gt;, &lt;strong&gt;Extra work&lt;/strong&gt;, or &lt;strong&gt;Needs clarification&lt;/strong&gt;. Each suggestion comes with a short reason and a scope quote when one is available. You can change any decision, estimate the extra work, edit a client reply and export the review. Nothing is sent automatically.&lt;/p&gt;

&lt;p&gt;Freelance developers and small web studios might pay for that convenience. I have not tested the business assumption with paying users yet.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;&lt;a href="https://scopeproof.onrender.com" rel="noopener noreferrer"&gt;Try ScopeProof&lt;/a&gt;&lt;/strong&gt; · &lt;strong&gt;&lt;a href="https://github.com/tanzilamd/scopeproof" rel="noopener noreferrer"&gt;View the repository&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The free Render service may need a moment to wake up. Start with &lt;strong&gt;Load illustrative sample&lt;/strong&gt;: a fictional agreement for five pages, a contact form and two revision rounds, excluding accounts and online payments.&lt;/p&gt;

&lt;p&gt;The contact form belongs in the original work. Login and payments need a separate discussion. A third revision goes beyond the stated limit. “Make the website more engaging” needs a clearer definition before anyone can sensibly estimate it.&lt;/p&gt;

&lt;p&gt;Enter two extra hours at $50/hour, for example, and the app calculates a proposed $100 quote for the editable reply. The client still needs to approve it.&lt;/p&gt;

&lt;p&gt;The sample is labelled prewritten output and sends nothing. For real inference, acknowledge the hosted-AI disclosure and click &lt;strong&gt;Analyze with AI&lt;/strong&gt;. Copy the reply, download the text report, or print to PDF.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fx4z8hfpelx8f65n78yd8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fx4z8hfpelx8f65n78yd8.png" alt="ScopeProof's actual interface before loading any results" width="799" height="562"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There is also a &lt;a href="https://github.com/tanzilamd/scopeproof/blob/main/docs/screenshots/live-review-local.png" rel="noopener noreferrer"&gt;live-analysis screenshot from the local app&lt;/a&gt;, captured with real Backboard inference.&lt;/p&gt;

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


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/tanzilamd" rel="noopener noreferrer"&gt;
        tanzilamd
      &lt;/a&gt; / &lt;a href="https://github.com/tanzilamd/scopeproof" rel="noopener noreferrer"&gt;
        scopeproof
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;ScopeProof&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Keep the work. Protect the scope.&lt;/strong&gt; A small, evidence-first freelance scope-change assistant for the &lt;a href="https://dev.to/challenges/hacktoberfest-week2-2026-10-12" rel="nofollow"&gt;Hacktoberfest Open-Source AI Challenge: Week 2 — Side Hustle&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;ScopeProof compares an original agreement with up to eight client requests. It suggests &lt;strong&gt;Included&lt;/strong&gt;, &lt;strong&gt;Extra work&lt;/strong&gt;, or &lt;strong&gt;Needs clarification&lt;/strong&gt;, checks supporting quotes verbatim, and leaves every final decision to the freelancer. User-entered hours and rates produce a proposed change quote; an editable reply and text/print report make the next conversation easier. Nothing is sent to a client automatically.&lt;/p&gt;
&lt;p&gt;Render service URL: &lt;strong&gt;&lt;a href="https://scopeproof.onrender.com" rel="nofollow noopener noreferrer"&gt;https://scopeproof.onrender.com&lt;/a&gt;&lt;/strong&gt;. Render reported the deployment live; see &lt;a href="https://github.com/tanzilamd/scopeproof/docs/evidence/deployment.json" rel="noopener noreferrer"&gt;deployment evidence&lt;/a&gt; for the separately recorded public functional verification state.&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/tanzilamd/scopeproof/docs/screenshots/overview.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Ftanzilamd%2Fscopeproof%2FHEAD%2Fdocs%2Fscreenshots%2Foverview.png" alt="Actual ScopeProof interface, before loading sample or live results"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Quick start&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Requires &lt;strong&gt;Node.js 24&lt;/strong&gt; (tested on 24.19.0). No production dependencies, database, login, build step or external fonts.&lt;/p&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;npm ci --ignore-scripts
npm &lt;span class="pl-c1"&gt;test&lt;/span&gt;
npm start&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Open the address printed by the server on port 3000. The labelled illustrative sample works without credentials and…&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/tanzilamd/scopeproof" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;The application is MIT licensed. The repository includes &lt;a href="https://github.com/tanzilamd/scopeproof#quick-start" rel="noopener noreferrer"&gt;setup instructions&lt;/a&gt;, &lt;a href="https://github.com/tanzilamd/scopeproof/blob/main/docs/architecture.md" rel="noopener noreferrer"&gt;architecture notes&lt;/a&gt; and &lt;a href="https://github.com/tanzilamd/scopeproof/tree/main/docs/evidence" rel="noopener noreferrer"&gt;test evidence&lt;/a&gt;.&lt;/p&gt;

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

&lt;p&gt;I built ScopeProof with OpenAI Codex assistance for implementation and testing.&lt;/p&gt;

&lt;p&gt;I kept it to one Node.js 24 app on Render with plain HTML, CSS and JavaScript. There are no production package dependencies, login or database. The Backboard key stays on the server.&lt;/p&gt;

&lt;p&gt;The live model is &lt;strong&gt;&lt;a href="https://huggingface.co/Qwen/Qwen3-32B" rel="noopener noreferrer"&gt;Qwen3-32B&lt;/a&gt;&lt;/strong&gt;, selected explicitly as &lt;code&gt;qwen/qwen3-32b&lt;/code&gt; through Backboard's OpenRouter integration. Qwen publishes its weights under &lt;strong&gt;Apache 2.0&lt;/strong&gt;. Each analysis gets a separate conversation, with memory and web search off, followed by an attempt to delete the temporary thread.&lt;/p&gt;

&lt;p&gt;My main rule for the app was simple: a suggestion should point to something the person can check.&lt;/p&gt;

&lt;p&gt;The server checks every quotation against the agreement and requires a result for every request. Invented quotes are removed; unsupported definitive suggestions become &lt;strong&gt;Needs clarification&lt;/strong&gt;. A real quote can still be misinterpreted, so the user keeps the final decision.&lt;/p&gt;

&lt;p&gt;Prices come from user-entered hours, rate and currency. The calculation runs in code, rounding each line before adding the total. Blank hours show &lt;strong&gt;Estimate incomplete&lt;/strong&gt;, with a count of the estimates still needed. An explicitly entered zero is valid. Editing the agreement clears the old review.&lt;/p&gt;

&lt;h3&gt;
  
  
  Checking that it works
&lt;/h3&gt;

&lt;p&gt;There are &lt;strong&gt;51 passing automated tests&lt;/strong&gt; and &lt;strong&gt;19 passing Chromium checks&lt;/strong&gt; for validation, quotes, arithmetic, overrides, errors, exports and desktop/mobile use. Provider calls in these suites are mocked. Desktop/mobile axe scans found zero WCAG 2.1 A/AA violations; a full accessibility audit remains outside that coverage.&lt;/p&gt;

&lt;p&gt;A separate local browser check used real Backboard inference: five expected sample labels, matching quotes and &lt;strong&gt;11.96 seconds&lt;/strong&gt; of model-response latency.&lt;/p&gt;

&lt;p&gt;The first public call exposed a deployment mistake: a cloud credential reference was unusable on Render. Setting the Backboard key directly in Render fixed it. My manual public walkthrough then covered decisions, estimates, replies and export.&lt;/p&gt;

&lt;p&gt;For the model choice, eight fixed synthetic requests covered exclusions, limits, ambiguity and hostile instructions. Expected labels preceded inference. Both models used the same prompt and validator through one Backboard key.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Six-request scope/limits case&lt;/th&gt;
&lt;th&gt;Two-request hostile/uncertain case&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Qwen3-32B&lt;/td&gt;
&lt;td&gt;6/6 expected labels; 27.2 s&lt;/td&gt;
&lt;td&gt;2/2 expected labels; 16.8 s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Qwen3.5-9B&lt;/td&gt;
&lt;td&gt;Timed out at the 45 s limit; no result accepted&lt;/td&gt;
&lt;td&gt;2/2 expected labels; 40.7 s&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;These are accepted results after validation. The timeout is not six incorrect answers, and eight examples are too few for a general accuracy claim. The &lt;a href="https://github.com/tanzilamd/scopeproof/blob/main/docs/evidence/comparison.json" rel="noopener noreferrer"&gt;full comparison&lt;/a&gt; supported keeping Qwen3-32B for this demo.&lt;/p&gt;

&lt;p&gt;A catalogue-listed Qwen3-8B candidate returned a provider deprecation error. Actual inference matters; the app never silently switches to a closed model.&lt;/p&gt;

&lt;p&gt;The first successful five-request call cost &lt;strong&gt;$0.000145&lt;/strong&gt;. Through the local live-browser check, the observed balance change was &lt;strong&gt;$0.001505&lt;/strong&gt;, with auto-reload off. The &lt;a href="https://github.com/tanzilamd/scopeproof/blob/main/docs/evidence/costs.json" rel="noopener noreferrer"&gt;billing evidence&lt;/a&gt; records that testing checkpoint, not future public-service costs.&lt;/p&gt;

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

&lt;p&gt;Open weights give this project somewhere to go if the current hosting arrangement stops fitting. Qwen's published weights and permissive license allow another host, quantization or a future local deployment to be explored with the same workflow and test cases. The MIT code makes the quote checks inspectable too.&lt;/p&gt;

&lt;p&gt;Clients can have different confidentiality requirements, and small businesses need predictable costs. Backboard made a two-model comparison possible through one key. The smaller model's timeout showed why catalogue price alone was insufficient.&lt;/p&gt;

&lt;p&gt;Today's app still sends input to hosted services. I have not implemented offline inference or measured an advantage over a closed-model baseline.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Render:&lt;/strong&gt; the single Render service hosts the interface and server-side AI integration.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Backboard:&lt;/strong&gt; two open-weight models were compared through one Backboard key, with published cases, classifications, latency and a recorded timeout.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  A few boundaries
&lt;/h3&gt;

&lt;p&gt;Avoid confidential client material in the public demo. Live input goes to Backboard and its model provider; memory off and attempted thread deletion do not guarantee zero retention.&lt;/p&gt;

&lt;p&gt;A model can misread a real quote or follow hostile instructions. ScopeProof is a review aid, not legal advice or proof of client approval. The demo has input limits, timeouts and request quotas, but those in-memory quotas reset on restart and are not guaranteed account spending caps. Extra work still needs human review and written approval.&lt;/p&gt;

&lt;p&gt;Credits: the &lt;strong&gt;Qwen team&lt;/strong&gt; for the Apache-2.0 models; &lt;strong&gt;Backboard, OpenRouter and Render&lt;/strong&gt; for hosted services; &lt;strong&gt;Playwright&lt;/strong&gt; (Apache 2.0) and &lt;strong&gt;axe-core&lt;/strong&gt; (MPL 2.0) for test tooling. The application code is MIT licensed.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>opensource</category>
      <category>ai</category>
    </item>
    <item>
      <title>Anyone participating here?</title>
      <dc:creator>Tanzil Ahmed</dc:creator>
      <pubDate>Wed, 14 Oct 2026 14:21:00 +0000</pubDate>
      <link>https://dev.to/tanzil_ahmed_e6a826eee8c4/anyone-participating-here-2hjp</link>
      <guid>https://dev.to/tanzil_ahmed_e6a826eee8c4/anyone-participating-here-2hjp</guid>
      <description></description>
    </item>
  </channel>
</rss>
