Skip to content

Commit 1c56de3

Browse files
authored
blog: add GSoC'26 Week 06 update by Ashutosh Singh (#979)
1 parent 3e8b46d commit 1c56de3

1 file changed

Lines changed: 124 additions & 0 deletions

File tree

Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
---
2+
title: "GSoC '26 Week 06 Update by Ashutosh Singh"
3+
excerpt: "Phase 2 user testing starts and people type short prompts, so I build the Enhance flow and local RAG to fix it at the source. Plus the big structural move: lifting AOD out of Sugar OS into its own standalone project."
4+
category: "DEVELOPER NEWS"
5+
date: "2026-07-08"
6+
slug: "2026-07-08-gsoc-26-ashutoshx7-week06"
7+
author: "@/constants/MarkdownFiles/authors/ashutosh-singh.md"
8+
description: "GSoC'26 Contributor at SugarLabs working on Sugar Activity on Demand"
9+
tags: "gsoc26,sugarlabs,week06,ashutoshx7,rag,prompt-enhancement,standalone,user-testing,ai,llm"
10+
image: "assets/Images/GSOC.webp"
11+
---
12+
13+
<!-- markdownlint-disable -->
14+
15+
# Week 06 Progress Report by Ashutosh Singh
16+
17+
**Project:** [Sugar Activity on Demand](https://github.com/sugarlabs/GSoC/blob/master/Ideas-2026.md#sugar-activity-on-demand)
18+
**Mentors:** [Walter Bender](https://github.com/walterbender), [Ibiam Chihurumnaya](https://github.com/chimosky)
19+
**Reporting Period:** June 30, 2026 to July 6, 2026
20+
21+
---
22+
23+
## Goals for This Week
24+
25+
- Actually kick off Phase 2 small group user testing on the new Flatpak build
26+
- Watch real people use the Prompt Screen and see what breaks
27+
- Fix the "short prompt produces a weak activity" problem at the source instead of blaming the model
28+
- Ground generation in real Sugar activities rather than hoping the model just knows Sugar
29+
- Lift AOD out of the Sugar OS shell and into its own standalone project
30+
31+
---
32+
33+
## This Week's Achievements
34+
35+
Last week I shipped the Flatpak so testers could install AOD in one command. This week I finally got to use it for what it was for, which was putting the tool in front of people who are not me. Phase 2 started. And the very first lesson landed within about ten minutes of the first session.
36+
37+
People type short prompts.
38+
39+
I had been testing with things like "a fraction matching game with three difficulty levels and instant feedback when the answer is wrong." A real person types "math game" and hits send. That is the whole prompt. And then they look at the mediocre thing that comes back and, fairly, decide the tool is not very good. The problem was never the model. The problem was that the model was being handed almost nothing to work with and left to guess at the other 90 percent.
40+
41+
So a big part of this week became about the input, not the output. But there was a second, more structural piece too. Alongside the testing work, I lifted AOD out of the Sugar OS codebase and into its own standalone project, which is the thing that turns it from "my branch of Sugar" into software anyone can pick up.
42+
43+
![The Prompt Screen where the learner describes an idea, picks a template category and license, and can enhance a short prompt before generating](assets/Images/gsoc26-ashutoshx7/aod-prompt-screen.png)
44+
45+
### 1. Phase 2 Started, and It Was Humbling
46+
47+
I ran the first sessions with a small group from the Sugar community, a couple of fellow contributors and a teacher who was kind enough to sit with me. I did the thing Walter kept telling me to do, which was shut up and watch instead of narrating. That was hard and also the most useful hour of the week.
48+
49+
What I saw, over and over: rough, short prompts. Not because anyone was lazy, but because that is simply how people describe an idea before they have thought it all the way through. "typing practice." "a game about the planets." "quiz." My generator was treating those three words as a complete spec, and it showed.
50+
51+
### 2. The Enhance Flow
52+
53+
So I built prompt enhancement into the pipeline. There is a new module, `enhance.py`, whose only job is to take a short or rough learner idea and expand it into a clearer activity brief before any generation happens. It fills in the parts a person leaves implicit: what the learner actually does, what a win or a correct answer looks like, roughly what should be on screen.
54+
55+
On the Prompt Screen this shows up as:
56+
57+
- A **✨ Enhance** button, so you can grow your idea into a brief on demand and see what the model thinks you meant
58+
- An **auto-enhance** toggle, which automatically runs enhancement on prompts that are clearly too short to generate anything decent from
59+
- The enhanced brief shown back to you in the chat before generation runs
60+
61+
That last part matters more than it looks. The enhanced brief is not hidden. You see exactly what got added, and if it guessed wrong you can edit it or turn enhancement off. I did not want a tool that silently rewrites what you asked for and then builds something you never described. The whole point is that you stay in charge of the idea.
62+
63+
### 3. Grounding Generation in Real Sugar Activities
64+
65+
The other half of the input work was making the model write more like Sugar and less like a generic Python tutorial. The system prompt from Week 3 got us far, but a prompt can only describe conventions. It cannot show a hundred real examples.
66+
67+
So I added a local retrieval layer, `rag.py`. Before generating, it pulls patterns out of real Sugar activities that are already installed on the machine and feeds the relevant ones into the planner. If you ask for a drawing activity, it can lean on how existing activities actually set up a canvas and save to the Journal, instead of inventing something that looks plausible but is not how Sugar does it. It runs locally, over activities already on your system, and nothing is uploaded anywhere or used for training.
68+
69+
### 4. Porting AOD Out of Sugar OS Into Its Own Project
70+
71+
Here is the structural move I am most glad about. Until now, AOD lived inside my fork of the Sugar OS shell, tangled into the `jarabe` codebase. That was the right place to build it, because it let the experience run embedded in the Sugar home view. But it also meant that trying AOD required a full Sugar OS development environment, and it meant the code was married to the whole desktop.
72+
73+
So I pulled the entire thing out into its own standalone project: a normal `src`-layout Python package, `sugaraod`, organized by domain instead of one flat pile of files. `core/` for the spec and licenses, `llm/` for the providers and this week's enhance step, `generation/` for the pipeline and RAG, `service/`, and `ui/`. The studio now depends on the Sugar **toolkit** as a library, the same way any GTK app depends on GTK, and not on the Sugar OS shell at all. I added a test that enforces exactly that: it fails if any `jarabe` shell module is ever imported, so the separation cannot quietly rot later.
74+
75+
![AOD running as its own standalone studio, with the Sugar-style home carried over from the shell](assets/Images/gsoc26-ashutoshx7/aod-modify-create.png)
76+
77+
The Sugar feel came along for the ride. The home screen is still the Sugar-style ring of activities around your XO icon, ported out of the shell's favorites layout, so it looks and moves like Sugar even though the shell is gone. The payoff is simple: AOD now runs on any Linux desktop on its own, and the code is finally a project rather than a patch.
78+
79+
---
80+
81+
## Challenges & How I Overcame Them
82+
83+
**Deciding when to auto-enhance.** If someone already wrote a careful, detailed prompt, rewriting it is insulting and usually makes it worse. So auto-enhance only fires when a prompt is clearly too thin to build from, and the explicit ✨ button is always there for the in-between cases. Short and vague gets help. Detailed and deliberate gets left alone.
84+
85+
**RAG over a tiny corpus.** On a fresh machine there might only be a few installed activities to retrieve from, so noisy retrieval was a real risk. I tuned it to prefer a small number of clearly relevant snippets over stuffing the prompt full, and to fall back gracefully to the plain system prompt when nothing good matches.
86+
87+
**Cutting the cord to the Sugar OS shell.** The hard part of the extraction was the home view, which lived deep inside the shell and reached into things only the full desktop has. Porting just the ring layout and the studio styling, and then locking the separation in place with the no-`jarabe` test, was what let me pull AOD out without losing the Sugar look.
88+
89+
---
90+
91+
## Key Learnings
92+
93+
The input matters as much as the model. Back in Week 3 I wrote that the system prompt is everything. This week extended that. It is not just the instructions to the model, it is the entire brief the model is working from, and most of that brief comes from a person who is understandably going to under-specify. My job is to close that gap before generation, not to be surprised by it afterward.
94+
95+
Watching real users was the other lesson, and it was humbling in the good way. Every assumption I had about how people phrase a prompt was slightly off. One hour of watching people actually type told me more than weeks of guessing.
96+
97+
And making AOD standalone changed how the whole thing feels. For weeks the honest answer to "can I try it" was "first set up a Sugar OS dev environment." Pulling it into its own project quietly turned that into "install this app." That is the difference between a demo and something someone else can keep.
98+
99+
There is a Sugar idea sitting under the enhance work, too. Sugar has always aimed for a low floor, letting a learner start from wherever they happen to be. Helping a three word idea grow into a real activity brief is that same principle pointed at the prompt box. Nobody should have to already know how to write a spec before they get to make something.
100+
101+
---
102+
103+
## Next Week's Roadmap
104+
105+
- Build a proper debugging layer for generated activities, so a bad activity gets caught and fixed before a learner ever sees it
106+
- Draw out the architecture of that layer so the pipeline is easy to reason about
107+
- Chase down the activities that pass every static check and still crash the moment they open
108+
- Keep feeding Phase 2 observations back into the enhance and RAG behavior
109+
110+
---
111+
112+
## Acknowledgments
113+
114+
Thanks to Walter Bender for the advice to watch testers instead of talking over them, which is the only reason I caught the short-prompt problem this early. Thanks to the Phase 2 testers, especially the teacher who sat through the rough edges with me, and to Ibiam Chihurumnaya for the ongoing review.
115+
116+
---
117+
118+
## Connect with Me
119+
120+
- GitHub: [@Ashutoshx7](https://github.com/Ashutoshx7)
121+
- Email: [ashutoshx002@gmail.com](mailto:ashutoshx002@gmail.com)
122+
- Matrix: [@Ashutoshx7:matrix.org](https://matrix.to/#/@Ashutoshx7:matrix.org)
123+
124+
---

0 commit comments

Comments
 (0)