Inspiration

An evening rarely follows its original plan. Guests arrive earlier, laundry can wait, and a bike needs to be ready for tomorrow. A household assistant should make those tradeoffs visible instead of silently choosing which promise to break. Watt If treats a changed plan as a small scheduling problem a person can inspect.

What it does

Tell Watt If what changed. A real local Strands agent reads the fictional household and proposes checked changes to three explicitly optional chores. An exact planner respects starts, finish deadlines, quiet times and omitted work. The visual timetable compares the proposed load with running the same included chores at their earliest allowed starts.

Infeasible requests remain blocked. A person reviews and approves the exact current revision before downloading an advisory calendar. The model has no approval, export or device-control tool. All calendar events are clearly labeled for the fictional demonstration date October 1, 2026, using floating local times.

Alexa+ simulation route

This is a working simulated Alexa+ experience under the hackathon's explicit web-app alternate route. The full simulation source and actual running demo are public. It does not connect to Alexa, implement an Alexa skill/MCP integration, control appliances, use live tariffs, or establish real-world energy savings. Household loads, prices and forecasts are fictional.

How it was built

Strands Agents SDK 1.54.0 orchestrates real local Qwen 2.5 14B inference through Ollama client 0.6.2. The model selects typed constraint changes and numbered source clauses. The application resolves original source text and validates complete instruction coverage before invoking the planner. Dependency reads are explicitly labeled in the trace; they are not falsely presented as model-selected calls. Factual replies are rendered from the validated result rather than uncontrolled model prose.

Python 3.12 supplies the loopback API and validation; SQLite stores constraint revisions, proposals and approvals. Standard HTML, CSS and JavaScript present the conversation, time controls, timetable, comparison and actual tool trace. Approval is bound to the proposal ID and revision; stale or infeasible proposals cannot be newly approved. The exact scheduler preserves energy for the included chores. Omitting a chore is disclosed as different work, not efficiency savings.

Existing work and new contributions

The existing MIT-licensed PeakShift planner is preserved byte-for-byte: SHA-256 01c594828a0068893a1808ebc21e6202cbcafe23f1b828f17695481a4b35a8ed. The imported archive does not establish its original creation date. No new solver invention is claimed.

September 8, 2026 development added the source-grounded conversation, household constraints, quiet cutoffs, persistent revisions, approval/calendar workflow, responsive visual interface and associated tests. These are substantial new behaviors around the disclosed reused component. The repository retains the MIT license and includes SOURCE_PROVENANCE.md.

What was verified

The clean publication passed 44 regression tests, 3,546 independent scheduling scenarios covering 140,042 enumerated assignments, 29 independent approval/calendar/HTTP/concurrency checks, 12 targeted grounding checks and five UI regressions. Test fixtures are explicitly separate from actual model evidence.

Six real local model scenarios passed on the documented final configuration: dinner deadlines, infeasible conflict, skip/recovery, default plan, a quiet cutoff and an e-bike finish deadline. Browser approval and actual ICS download passed; the interface also passed at 390px width without page overflow. The 79-second continuous demo separately records three actual model runs and an approval/download. Captions are below the real browser capture; inference was not accelerated or replaced with fixtures.

These finite examples are not an accuracy percentage or a general English-understanding benchmark. Actual receipts contain model digest, source hashes, tool calls, constraints and timings.

Challenges and learning

Initial smaller-model experiments invented starts, confused finish deadlines, paraphrased evidence, selected tools before prerequisites and produced inaccurate free-form summaries. Failed runs were retained. Immutable source IDs, complete-clause validation, explicit dependency reads, checked summary rendering and the larger verified model address the demonstrated failures. The public friction log documents tasks, expected and actual results, severity, workarounds and concrete suggestions.

The supported language interface is deliberately narrow: explicit start/finish times, quiet cutoffs and skip/restore instructions for the named chores. Conditional or negated language may need clarification. Manual time controls remain available. This is a local single-operator prototype with no production hosting, appliance safety model or utility integration.

AWS Builder and Open Source

The AWS Builder contribution is the genuine documented Strands SDK runtime; no Bedrock, AgentCore or paid AWS deployment is claimed. The Open Source contribution is the new MIT application published during the hackathon window, with full source, setup instructions, tests, evidence and reuse disclosure.

AI assistance

Codex substantially assisted implementation, debugging, independent review, tests, documentation and submission preparation. Belal Embaby is the solo entrant. Strands, Ollama and the separately downloaded Qwen model retain their respective licenses.

Try it

Use the repository README with Python 3.12, the pinned requirements and official local qwen2.5:14b model. Run python app.py and open http://127.0.0.1:8793. The tested model download is about 9 GB and needs sufficient memory; the verified machine used an RTX 4080 SUPER. Manual planning requires no model. Run the regression suite and independent verifier as documented. No paid API or cloud credentials are needed for the verified path.

Public source and evidence: https://github.com/Bembaby/watt-if

Development friction log: https://github.com/Bembaby/watt-if/blob/main/FRICTION_LOG.md

Working demo: https://youtu.be/JFKJRdyYYUI

Built With

Share this project:

Updates

Submission history