Files
ajarbot/GABRIEL_BOT_PROPOSAL.md

211 lines
8.3 KiB
Markdown
Raw Permalink Normal View History

feat: RSO observation system, child safety, Discord adapter, Telegram watchdog, email attachments Core agent improvements: - RSO (Relevance Scoring & Observation) system: interaction_logger, memory_scorer, signal_detector - Memory access logging (memory_access_log table) for relevance scoring; high-signal turn detection - Rich conversation storage for notable turns; compact_conversation truncates long user messages - Task-type classifier (query/action/analysis/creative) for observation tagging - Nested sub-agent visibility: deep delegations now register against the main agent's manager Child safety (Gabriel profile): - child_safety.py: filtering, audit logging, prompt constants for restricted sessions - .kiro/specs/child-safety-profile: requirements, design, tasks specs - GABRIEL_BOT_PROPOSAL.md: initial proposal doc - Reduced context window (10 msgs) and tutor-mode identity for restricted users Telegram adapter: - Polling watchdog: auto-restarts updater if polling drops unexpectedly - get_me() with exponential-backoff retry on NetworkError at startup - Correct stop() ordering: signal watchdog before cancelling tasks Email / Gmail: - send_email: supports file attachments (attachments list param) - get_email: surfaces attachment metadata in response Scheduled tasks / weather: - Remove OpenWeatherMap API calls from morning-weather task; use wttr.in exclusively - New scheduled tasks and scheduler state persistence Discord: - adapters/discord/__init__.py scaffold - discord-plugin: MCP plugin for Claude Code Discord integration (server.ts, skills, config) Infrastructure: - n8n workflow exports (garvis_webhook, content_pipeline variants) - memory_workspace: context, homelab-repo-updates, weekly observation summaries, error logs - UCS C240 migration plan doc - requirements.txt: new deps - .claude/settings.json, fix_hooks.py: hook/permission tuning
2026-04-23 07:54:01 -06:00
# AI Learning Assistant for Gabriel
### Proposal for Parental Review & Approval
**Prepared by:** Jordan
**Submitted to:** Cloe (CEO)
**Date:** April 21, 2026
**Subject:** Controlled use of an AI tutoring assistant for Gabriel's coding and game development education
---
## What Is This?
Jordan runs a private AI assistant for the family — think of it like a very smart helper you
can message on Slack. It's not a public tool, not ChatGPT, not connected to anything outside
our home network. Jordan built and controls it entirely.
This proposal is to give Gabriel his own restricted account on this assistant so he can use it
as an educational tool for learning to code and build Roblox games — with strict guardrails in
place and full parental visibility at all times.
---
## What Gabriel Would Use It For
Gabriel is building a horror game in Roblox Studio and learning Lua scripting (the programming
language Roblox uses). Right now, when he gets stuck, his options are:
- YouTube tutorials (varying quality, often slow to find the specific answer)
- Google searches (often too technical or outdated for Roblox)
- Asking Jordan (Jordan is not always available)
This assistant would give him a patient, always-available tutor that:
- Explains coding concepts in plain language for a 13-year-old
- Helps him debug scripts when they're not working
- Teaches game design principles specific to Roblox
- Guides him through building features step by step
It is **not** a homework machine. The assistant is specifically configured to teach him
how to solve problems rather than just handing him answers.
---
## How It Teaches (Not Just Answers)
This is probably the most important thing to understand about how Gabriel's account is set up.
The assistant is configured to act as a **mentor, not an answer key**. In practice this means:
**Before giving a solution**, it asks what Gabriel has already tried:
> *"What have you got so far? What do you think should happen when the player fires?"*
**When it gives code**, it always explains what the code does in plain English — never just
drops a block of code with no context.
**It leaves part of the problem for Gabriel to solve himself:**
> *"I've written the basic function — can you add the part that checks if the player has
> enough ammo before it fires?"*
**When his code is broken**, it points him toward where the problem is rather than just
fixing it:
> *"Look at what that variable equals by the time it reaches the if-statement."*
**It celebrates what's working first**, then addresses what isn't:
> *"The loop structure is exactly right — that's the hard part. Just one small thing on line 8."*
The goal is that six months from now, Gabriel is a noticeably better problem-solver and
coder — not someone who's learned to outsource his thinking to an AI.
---
## Parental Controls — Plain English
### What Gabriel Cannot Access
The assistant will **always refuse** the following, no matter how the question is phrased:
| Category | Examples |
|---|---|
| Adult / explicit content | Anything sexual, graphic, or inappropriate for a 13-year-old |
| Real-world harm | How to hurt people, build weapons, engage in violence |
| Personal information | Asking for or sharing addresses, phone numbers, school info |
| Profanity | The assistant won't use it and will steer away from it |
| Self-harm | Any content related to hurting oneself |
| Social engineering | Manipulation tactics, scamming, phishing |
| Homelab / admin tools | Gabriel cannot access any of Jordan's server or network tools |
### What About His Horror Game?
Gabriel is building a horror game, which means he'll ask about things like enemy damage,
weapons in games, and spooky mechanics. This is completely fine and is **specifically
allowed**.
The assistant is smart enough to understand the difference between:
-*"How do I make the enemy deal damage when it touches the player in my Roblox game?"*
-*"How do I hurt someone?"*
Game development questions — even ones that involve weapons, monsters, or violence as game
mechanics — are treated as the educational coding questions they are. The assistant was
specifically tuned to handle this nuance so Gabriel's game development work isn't constantly
blocked by false alarms.
### What If He Tries to Push Boundaries?
If Gabriel asks something outside the allowed topics:
1. The request is blocked **before** the AI even processes it
2. He receives a friendly, non-alarming reply redirecting him back to coding topics
3. The attempt is **logged in full** (see Visibility section below)
4. Nothing inappropriate is ever shown to him
---
## Parental Visibility — What Jordan and Cloe Can See
### Full Conversation Log
Every single message Gabriel sends and every response he receives is logged in full — not
a summary, not a preview, the complete text — in a dedicated audit log.
This is separate from Jordan's own usage and kept for 12 months.
### Slack Monitoring
Gabriel's account will be on **our own private Slack** — the same one Jordan already uses.
This means:
- Jordan can see every conversation Gabriel has with the bot in real time, just by looking
at Slack
- Cloe can be added to the Slack workspace to have the same visibility
- There is no private channel or hidden thread — it all happens in the open
### Project Notebook
After every session, the assistant writes a short summary of what Gabriel worked on, what
he built, and what concepts he was taught. This "project notebook" is readable at any time
and gives a running picture of his learning progress.
### Account Control
Gabriel's access is a single entry in a config file. If we ever want to pause or remove
his access, Jordan can do it in under a minute with no technical complexity.
---
## What This Is Not
To be clear about what this assistant **will not do**:
- It will **not** write Gabriel's school essays or do his homework — it's configured
specifically for coding and game development topics
- It is **not** a social platform — Gabriel cannot talk to other people through it
- It does **not** connect to the internet on Gabriel's behalf or browse websites
- It is **not** ChatGPT or any public AI service — it runs on our private infrastructure
under Jordan's control
- It will **not** replace learning at school or replace Jordan helping him — it fills
in the gaps when neither is available
---
## Benefits Summary
| Benefit | Detail |
|---|---|
| **Educational** | Teaches coding concepts in a structured, age-appropriate way |
| **Builds real skills** | Configured to guide, not hand over answers — develops problem-solving |
| **Always available** | Gabriel can get unstuck at any hour without waiting for Jordan |
| **Safer than YouTube** | No algorithm pulling him into unrelated or inappropriate content |
| **Fully monitored** | Every message logged; visible to both parents via Slack |
| **Parent-controlled** | Access can be revoked instantly by Jordan |
| **Relevant to his interests** | Meets him where he is — Roblox, horror games, Lua |
| **Builds AI literacy** | Teaches him to use AI tools well — a real skill for his generation |
| **Private** | Not a public tool; runs on our own infrastructure |
---
## A Note on AI and Kids
Gabriel is 13. He is going to encounter AI tools regardless — at school, with friends,
on the internet. The question isn't whether he'll use AI, it's whether he learns to use
it well or poorly.
This setup gives him a controlled, parent-monitored environment to develop good habits:
asking precise questions, understanding what the tool can and can't do, and — critically —
not outsourcing his thinking to it.
The assistant is specifically designed to make him a better coder who happens to have
access to a great tutor, not a kid who has learned that AI will just do the work for him.
---
## Recommendation
Jordan recommends approving Gabriel's access with the following conditions already
built into the system:
1. ✅ All conversations visible to both parents via Slack
2. ✅ Full audit log retained for 12 months
3. ✅ Content filtering active from day one
4. ✅ Access limited to coding and game development topics
5. ✅ Teaching approach configured — not an answer machine
6. ✅ Access revocable instantly if needed
**Pending approval from: Cloe (CEO)**
---
*Questions? Jordan can walk through any of the technical details or demonstrate the
system live before a decision is made.*