This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle. A client agrees to a bakery rebrand. Then comes another message: “Love it. Could you also add a few things for Instagram?” The difficult part isn't writing a polite reply. It's working out which requests the ori
This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle. A client agrees to a bakery rebrand. Then comes another message: “Love it. Could you also add a few things for Instagram?” The difficult part isn't writing a polite reply. It's working out which requests the original price covers, which need a question, and which deserve a separate quote. ScopeFence is a local app for freelance designers that helps make that decision explicit. Give it the agreed brief, the new client message and your own rate card. A local Gemma model proposes a classification for each request. You inspect the evidence, correct the proposal and approve the work before exporting a change order. The intended customer is a freelancer who sells projects at a fixed price. A modest one-off licence could make sense if the tool helps them avoid an unpaid revision or prepare a clearer quote. That is a pricing hypothesis, not validated customer demand. This submission does not claim paying users or measured revenue. The central design choice is simple: Gemma proposes; the freelancer decides. Prices come from code and the freelancer's rates, never from model-generated arithmetic. Watch the 1 minute 50 second demo · Release page, captions and production notes The demo uses an invented bakery brief and actual local Gemma output. The AI-operated walkthrough corrects the proposed labels, approves a SGD 350 change order and shows the export controls. Narration is AI-generated using OpenAI’s Cedar voice. This video was recorded on the older Intel test machine: analysis took 130.8 seconds, with 126.8 seconds of processing cut and the edits labelled. Updated M5 timings are below. No real client data is used. Source code and build history on GitHub The app is MIT licensed. Setup, pinned runtime/model downloads, evaluation evidence and third-party notices are in the repository. After the initial downloads, inference runs locally through llama.cpp. I directed an AI-assisted build: agents proposed and challenged ideas, worked from a detailed implementation plan, implemented the product and reviewed the results. A separate Astra agent then performed a final technical review. The code, tests and evaluation cases were produced with AI assistance; this was not a manually coded solo build. Gemma sorts requests into included, needs clarification or extra work. An included request must cite the brief. Code checks the proposed quote against the original text; a quote that cannot be found is flagged for clarification. That does not prove the model understood the agreement. It gives the user something concrete to inspect instead of an unsupported “yes, that's covered.” The UI highlights the relevant clause so the user can judge it themselves. The rate card contains the hourly rate and any fixed-price deliverables. Calculations use integer cents. Only approved rows contribute to the total, and the user can change classifications and effort estimates before approving them. The result can be downloaded as Markdown or printable HTML. Markdown preserves edits to the draft text; HTML is generated from the approved table. Nothing is sent to a client automatically. The default model is Gemma 4 E2B, quantised to Q4_0 and served locally by llama.cpp. Each request uses a JSON Schema containing the actual clause IDs and rate-card item IDs. The runtime constrains the output structure, and the server validates it again. This makes malformed output easier to handle. It does not prevent a structurally valid answer from being wrong. Failed validation has bounded repair attempts; the app reports an error rather than supplying a fabricated fallback analysis. Client messages are also treated as untrusted input. A deterministic detector flags known instruction-like patterns, including attempts to mark everything included. That is a limited guard against tested patterns, not a claim of universal prompt-injection resistance. The AI build team created 16 synthetic scenarios: six for development and ten held out until the prompt was frozen. The project lead reviewed the proposed labels before the live evaluation. Held-out measure Gemma 4 E2B Correct request labels 10 / 14 Proposed brief citations found verbatim 9 / 10 Ambiguous requests correctly labelled “needs clarification” 1 / 3 Valid JSON on the first attempt 10 / 10 The most important weakness was overconfidence. Some ambiguous requests were classified as extra work when the safer response was to ask a question. That is why the approval step matters: a confident-looking table must not quietly become a bill. These are ten invented held-out cases, not an independent benchmark or a study of real freelancers. The same AI-assisted build team created the tool and cases. The evaluation files and limitations are included so the results can be checked. On my M5 MacBook Air with 32 GB RAM, the bakery demo completed in 11.0–12.1 seconds across five live API requests, with an 11.4-second median. This used the same Gemma weights and frozen prompt, with native Apple Silicon llama.cpp and GPU acceleration. Every request succeeded on the first attempt. These were five repeats of the same example: the first request took 12.1 seconds and the four warm repeats used the normal prompt cache. Model startup was measured separately. Measurements and reproduction details are in the repository. The integrated application passed 185 unit tests and 19 browser tests in the lead's validation. The separate final reviewer reran 70 targeted tests and five browser cases, all passing. Those checks support the software workflow; they do not turn model accuracy into 100%. For this product, local inference is part of the value. A freelance brief may contain information someone does not want to send to another hosted service. ScopeFence can process it with an open-weight model on their own machine, without a per-request model API bill. The setup requires a model download and local compute, but ongoing analysis does not need a hosted model account or API key. Open tooling also makes the implementation inspectable. The runtime and model revisions are pinned, the evaluation records which model was tested, and the same evaluation can compare another model. A freelancer or developer can inspect the quote checks, change the rules and decide what they are willing to trust. The product is useful only if the human remains in control. It helps organise a conversation about scope; it does not interpret contracts or provide legal advice. Best Use of Gemma — Gemma 4 E2B performs the local request analysis through llama.cpp, with schema-constrained output, evidence checks and an evaluation against a smaller Gemma model. Credits: llama.cpp, Gemma and the ggml-org GGUF conversions. Model and dependency licence details are recorded in the repository's third-party notices.
Key Takeaways #
- •This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle. A client agrees to a bakery rebrand
- •This story was reported by Dev.to , covering developments in thedev space.
- •AI advancements continue to reshape industries — read the full article on Dev.to for complete coverage.
📖 Continue reading the full article: