emma - Apple //e Emulator Development Assistant
SkillDev toolsCycle-accurate Apple //e and Apple II Plus emulator in the browser, WebAssembly core, WebGL CRT rendering, signal-accurate composite video, no frameworks
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the emma - Apple //e Emulator Development Assistant skill
What this skill tells your AI
The instructions your AI receives, as published by mikedaley/web-a2e in .agents/skills/emma/SKILL.md and read by ahel’s review.
A comprehensive development assistant for the Apple //e browser-based emulator project. Emma intelligently detects your intent and helps with creating tools, maintaining documentation, analyzing changes, and answering questions.
Usage
Simply tell emma what you need in natural language:
/emma create a new app tool for [purpose]
/emma I need to make an agent tool that [does X]
/emma update the docs to reflect [change]
/emma will this change to [file] affect any tools?
/emma make a github PR for these features
/emma reference styles
/emma how do I [question]?
- Answer with short answers as the user will need to understand and be able to mentally grasp changes
- Wait until the users want lots of code before presenting it when they are inquiring
How Emma Works
Emma detects your intent and routes to the appropriate specialized guide:
Systems
App Tool: The emulator project located in [root]/* Agent Tool: The MCP server named appleii-agent (alias: emma) in [root] ../appleii-agent/*
Creating Tools
Intent: Creating a new app tool or agent tool
Examples:
- "create a new app tool for reading disk sectors"
- "I need an agent tool that loads ROM files"
- "make a tool to control the CPU"
Routes to: references/new-app-tool.md or references/new-agent-tool.md based on context
Updating Documentation
Intent: Updating project docs or generating emma's internal docs
Examples:
-
"update AGENTS.md with the new architecture"
-
"generate docs for all the app tools"
-
"update the release notes for version 1.2"
-
write docs to ../skills/emma/docs/*
Routes to: references/update.md
Analyzing Impact
Intent: Checking if changes affect tools, agent, or require updates
Examples:
- "will changing this WASM function affect any tools?"
- "what app tools need updating if I rename this function?"
- "does this change impact the agent?"
Routes to: references/impact.md
Referencing Documentation / Session Restore
Intent: Loading important docs into context for adherence, or restoring context after a session summary
Examples:
- "restore the core files"
- "load core files"
- "reference styles"
- "reference bindings"
- "reference architecture"
Routes to: references/reference.md
Session restore shortcut: "restore/load core files" → always loads core-files (all 7 files: 5 docs + 2 source files)
Available references:
core-files- All 7 core files for full session restore (styles, bindings, ag-ui-tools, agent-tools, mcp-ag-ui-integration, agent-manager.js, agent-tools.js)docs/styles.md- Coding styles, project styles, conventionsdocs/bindings.md- WASM bindings quick referencedocs/architecture.md- System architecture overview
Creating Pull Requests
Intent: Generating GitHub PR descriptions from commit history
Examples:
- "make a github PR for these features"
- "create a PR description"
- "generate PR for recent changes"
Routes to: references/create-pr.md
Managing Tasks
Intent: Creating, updating, listing, or resequencing development task sets
Examples:
- "tasks list multiconnect"
- "what's the next task for multiconnect?"
- "mark multiconnect 04 as done"
- "add a task to multiconnect for the button redesign"
- "check dependencies for multiconnect"
- "create a new task set called widgets"
- "resequence multiconnect — swap 03 and 04"
- "tasks show multiconnect 05"
Routes to: references/task-management.md
Task sets location: .Codex/docs/tasks/<name>/
Answering Questions
Intent: Finding information in docs or codebase
Examples:
- "how do the WASM bindings work?"
- "where is the disk controller code?"
- "what tools use the CPU functions?"
Routes to: references/query.md
Architecture
Progressive Disclosure: Each command loads only the reference documentation it needs, avoiding context bloat.
Documentation Sources:
docs/app-tools.md- AG-UI app tool registry and patternsdocs/agent-tools.md- MCP agent tool registry and patternsdocs/bindings.md- WASM interface documentationdocs/llm-txt.md- LLM integration documentationdocs/architecture.md- System architecture overview
Reference Documents: Detailed instructions for each sub-skill in references/
Implementation
The skill dispatcher reads the command and routes to the appropriate reference:
- Parse command (
app-tool,agent-tool,docs,impact,update, or question) - Load only the relevant reference document
- Execute the sub-skill with the reference as context
- Generate outputs in
docs/as needed
Files
.Codex/skills/emma/
├── SKILL.md # This file (skill index)
├── references/ # Sub-skill instructions
│ ├── new-app-tool.md # Create AG-UI app tools
│ ├── new-agent-tool.md # Create MCP agent tools
│ ├── update.md # Update any documentation
│ ├── impact.md # Analyze change impacts
│ ├── reference.md # Load docs into context
│ ├── create-pr.md # Generate GitHub PR descriptions
│ ├── task-management.md # Manage development task sets
│ └── query.md # Query docs
└── docs/ # Important reference docs
├── styles.md # Coding styles & conventions
├── bindings.md # WASM bindings reference
├── architecture.md # Architecture overview
├── app-tools.md # App tool registry
└── agent-tools.md # Agent tool registry
.Codex/docs/tasks/<name>/ # Development task sets (one folder per project)
├── __ - tasks.md # Manifest: fast index for listing (single file read)
├── 00-overview.md # Goals & decisions
└── 01-nn-*.md # Individual task files (NN-kebab-title.md)
Intent Detection & Routing
When invoked, emma:
- Parses user request to detect intent
- Routes to appropriate reference:
- Tool creation keywords →
new-app-tool.mdornew-agent-tool.md - Update/doc keywords →
update.md - Impact/affect/change keywords →
impact.md - PR/pull request keywords →
create-pr.md - Reference keywords →
reference.md - Task management keywords →
task-management.md - Question patterns →
query.md
- Tool creation keywords →
- Loads only relevant reference (progressive disclosure)
- Executes with context from the reference
- Returns results (code, docs, analysis, PR descriptions)
Intent Detection Patterns
Tool Creation:
- Keywords: create, make, build, add, new, tool
- Context: "app tool", "agent tool", "MCP tool", "frontend tool"
Documentation:
- Keywords: update, generate, document, write, refresh
- Context: "AGENTS.md", "README", "docs", "release notes", "bindings"
Impact Analysis:
- Keywords: impact, affect, break, change, sync, update
- Context: "WASM", "tools", "agent", "binding", "function"
Reference / Session Restore:
- Keywords: reference, apply, load, restore, use
- Context: "core files", "styles", "bindings", "architecture", "conventions", "session"
- "restore core files" / "load core files" → always loads
core-files(all 7 files)
Pull Request Creation:
- Keywords: PR, pull request, github, description, create, make, generate
- Context: "for these features", "recent changes", "unpushed commits"
Task Management:
- Keywords: tasks, task, todo, backlog, track, sequenc, resequence, mark done, check deps
- Context: task set names (e.g. "multiconnect"), "list tasks", "add task", "create task set", "what's next", "mark as done", "check dependencies"
- Routes to:
references/task-management.md
Questions:
- Patterns: how, what, where, when, why, can I, does it
- Fallback: anything not matching above intents
This keeps each invocation lightweight while maintaining comprehensive capabilities.
Signals
- GitHub stars
- 20
- Forks
- 1
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
emma- Source
- github.com/mikedaley/web-a2e