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
211 lines
8.3 KiB
Markdown
211 lines
8.3 KiB
Markdown
# 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.*
|