Files
ajarbot/GABRIEL_BOT_PROPOSAL.md
Jordan Ramos 916f86725d 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

8.3 KiB

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.