# lmkirkpat/lancemk_msb341 architecture

> Architecture diagram of the GitHub repository lmkirkpat/lancemk_msb341, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-10). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/lmkirkpat/lancemk_msb341
- Repository: https://github.com/lmkirkpat/lancemk_msb341

## Overview

Knack teaches creative-software skills inside a learner’s After Effects project. The main path is the AE panel/helper conversation, through the MCP mentor and skill tools, to project inspection or changes over the CEP bridge; session and learner records support continuity and review. The README also identifies local installation as a product capability. Some skill modules and installer internals were not sampled, so their detailed wiring is omitted; edges below cite only visible references or documented relationships.

Main entry points: [`mentor/tools/common.mjs`](https://github.com/lmkirkpat/lancemk_msb341/blob/main/mentor/tools/common.mjs) (Shared Tools), [`mentor/tools/index.mjs`](https://github.com/lmkirkpat/lancemk_msb341/blob/main/mentor/tools/index.mjs) (Tool Registry), [`mentor/lib/learner-store.mjs`](https://github.com/lmkirkpat/lancemk_msb341/blob/main/mentor/lib/learner-store.mjs) (Learner Record), [`panel/helper/main.mjs`](https://github.com/lmkirkpat/lancemk_msb341/blob/main/panel/helper/main.mjs) (Helper Process)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_panel["AE Panel"]
  node_panel_entry["Panel UI<br/>[main.js]"]
  node_panel_controller["Panel Controller<br/>[app.js]"]
  node_checklist["Skill Checklist<br/>[index.js]"]
  node_helper_main["Helper Process<br/>[main.mjs]"]
  node_helper_loop["Conversation Loop<br/>[loop.mjs]"]
  node_helper_mcp["MCP Client<br/>[mcp-client.mjs]"]
end

subgraph group_mentor["Mentor Runtime"]
  node_mentor_server["MCP Server<br/>[server.mjs]"]
  node_tool_registry["Tool Registry<br/>[index.mjs]"]
  node_shared_tools["Shared Tools<br/>[common.mjs]"]
  node_skill_tools["Skill Tools"]
  node_recommend["Skill Recommendation<br/>[recommend.mjs]"]
end

subgraph group_ae["After Effects Bridge"]
  node_ae_client["Bridge Client<br/>[bridge-client.mjs]"]
  node_cep_host["CEP Host<br/>[host.js]"]
  node_jsx_bridge["ExtendScript Bridge<br/>[bridge.jsx]"]
  node_jsx_skills["AE Skill Scripts"]
end

subgraph group_memory["Learning Memory"]
  node_session["Lesson Session<br/>[session.mjs]"]
  node_learner_store[("Learner Record<br/>[learner-store.mjs]")]
  node_reviews["Review Schedule<br/>[reviews.mjs]"]
end

subgraph group_setup["Local Setup"]
  node_installer["Local Installer<br/>[install.mjs]"]
end

node_learner(("Learner"))
node_after_effects["After Effects"]

node_learner -->|"uses"| node_panel_entry
node_panel_entry -->|"renders and routes"| node_panel_controller
node_panel_controller -->|"builds checklist"| node_checklist
node_helper_main -->|"creates client"| node_helper_loop
node_helper_main -->|"creates MCP client"| node_helper_mcp
node_helper_mcp -->|"sends MCP requests"| node_mentor_server
node_mentor_server -->|"dispatches tools"| node_tool_registry
node_tool_registry -->|"adds shared tools"| node_shared_tools
node_tool_registry -->|"loads skill modules"| node_skill_tools
node_shared_tools -->|"calls bridge"| node_ae_client
node_shared_tools -->|"uses session"| node_session
node_shared_tools -->|"uses learner record"| node_learner_store
node_shared_tools -->|"uses recommendations"| node_recommend
node_ae_client -->|"sends HTTP requests"| node_after_effects
node_after_effects -.->|"runs bridge script"| node_jsx_bridge
node_jsx_bridge -.->|"runs snippets"| node_jsx_skills
node_session -->|"reads record"| node_learner_store
node_learner_store -.->|"tracks review state"| node_reviews
node_learner -->|"installs locally"| node_installer

click node_panel_entry "https://github.com/lmkirkpat/lancemk_msb341/blob/main/panel/main.js"
click node_panel_controller "https://github.com/lmkirkpat/lancemk_msb341/blob/main/panel/lib/app.js"
click node_checklist "https://github.com/lmkirkpat/lancemk_msb341/blob/main/panel/lib/checklist/index.js"
click node_helper_main "https://github.com/lmkirkpat/lancemk_msb341/blob/main/panel/helper/main.mjs"
click node_helper_loop "https://github.com/lmkirkpat/lancemk_msb341/blob/main/panel/helper/lib/loop.mjs"
click node_helper_mcp "https://github.com/lmkirkpat/lancemk_msb341/blob/main/panel/helper/lib/mcp-client.mjs"
click node_mentor_server "https://github.com/lmkirkpat/lancemk_msb341/blob/main/mentor/server.mjs"
click node_tool_registry "https://github.com/lmkirkpat/lancemk_msb341/blob/main/mentor/tools/index.mjs"
click node_shared_tools "https://github.com/lmkirkpat/lancemk_msb341/blob/main/mentor/tools/common.mjs"
click node_skill_tools "https://github.com/lmkirkpat/lancemk_msb341/tree/main/mentor/tools"
click node_recommend "https://github.com/lmkirkpat/lancemk_msb341/blob/main/mentor/lib/recommend.mjs"
click node_ae_client "https://github.com/lmkirkpat/lancemk_msb341/blob/main/mentor/bridge-client.mjs"
click node_cep_host "https://github.com/lmkirkpat/lancemk_msb341/blob/main/bridge/cep/host.js"
click node_jsx_bridge "https://github.com/lmkirkpat/lancemk_msb341/blob/main/bridge/cep/jsx/bridge.jsx"
click node_jsx_skills "https://github.com/lmkirkpat/lancemk_msb341/tree/main/mentor/jsx"
click node_session "https://github.com/lmkirkpat/lancemk_msb341/blob/main/mentor/lib/session.mjs"
click node_learner_store "https://github.com/lmkirkpat/lancemk_msb341/blob/main/mentor/lib/learner-store.mjs"
click node_reviews "https://github.com/lmkirkpat/lancemk_msb341/blob/main/mentor/lib/reviews.mjs"
click node_installer "https://github.com/lmkirkpat/lancemk_msb341/blob/main/installer/install.mjs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_panel_entry,node_panel_controller,node_checklist,node_helper_main,node_helper_loop,node_helper_mcp toneBlue
class node_mentor_server,node_tool_registry,node_shared_tools,node_skill_tools,node_recommend toneAmber
class node_ae_client,node_cep_host,node_jsx_bridge,node_jsx_skills toneMint
class node_session,node_learner_store,node_reviews toneRose
class node_installer,node_learner,node_after_effects toneIndigo
```

## Components

### AE Panel

- [Panel UI](https://github.com/lmkirkpat/lancemk_msb341/blob/main/panel/main.js): `panel/main.js`
- [Panel Controller](https://github.com/lmkirkpat/lancemk_msb341/blob/main/panel/lib/app.js): `panel/lib/app.js`
- [Skill Checklist](https://github.com/lmkirkpat/lancemk_msb341/blob/main/panel/lib/checklist/index.js): `panel/lib/checklist/index.js`
- [Helper Process](https://github.com/lmkirkpat/lancemk_msb341/blob/main/panel/helper/main.mjs): `panel/helper/main.mjs`
- [Conversation Loop](https://github.com/lmkirkpat/lancemk_msb341/blob/main/panel/helper/lib/loop.mjs): `panel/helper/lib/loop.mjs`
- [MCP Client](https://github.com/lmkirkpat/lancemk_msb341/blob/main/panel/helper/lib/mcp-client.mjs): `panel/helper/lib/mcp-client.mjs`

### Mentor Runtime

- [MCP Server](https://github.com/lmkirkpat/lancemk_msb341/blob/main/mentor/server.mjs): `mentor/server.mjs`
- [Tool Registry](https://github.com/lmkirkpat/lancemk_msb341/blob/main/mentor/tools/index.mjs): `mentor/tools/index.mjs`
- [Shared Tools](https://github.com/lmkirkpat/lancemk_msb341/blob/main/mentor/tools/common.mjs): `mentor/tools/common.mjs`
- [Skill Tools](https://github.com/lmkirkpat/lancemk_msb341/tree/main/mentor/tools): `mentor/tools`
- [Skill Recommendation](https://github.com/lmkirkpat/lancemk_msb341/blob/main/mentor/lib/recommend.mjs): `mentor/lib/recommend.mjs`

### After Effects Bridge

- [Bridge Client](https://github.com/lmkirkpat/lancemk_msb341/blob/main/mentor/bridge-client.mjs): `mentor/bridge-client.mjs`
- [CEP Host](https://github.com/lmkirkpat/lancemk_msb341/blob/main/bridge/cep/host.js): `bridge/cep/host.js`
- [ExtendScript Bridge](https://github.com/lmkirkpat/lancemk_msb341/blob/main/bridge/cep/jsx/bridge.jsx): `bridge/cep/jsx/bridge.jsx`
- [AE Skill Scripts](https://github.com/lmkirkpat/lancemk_msb341/tree/main/mentor/jsx): `mentor/jsx`

### Learning Memory

- [Lesson Session](https://github.com/lmkirkpat/lancemk_msb341/blob/main/mentor/lib/session.mjs): `mentor/lib/session.mjs`
- [Learner Record](https://github.com/lmkirkpat/lancemk_msb341/blob/main/mentor/lib/learner-store.mjs): `mentor/lib/learner-store.mjs`
- [Review Schedule](https://github.com/lmkirkpat/lancemk_msb341/blob/main/mentor/lib/reviews.mjs): `mentor/lib/reviews.mjs`

### Local Setup

- [Local Installer](https://github.com/lmkirkpat/lancemk_msb341/blob/main/installer/install.mjs): `installer/install.mjs`

### Other components

- **Learner**
- **After Effects**

## Connections

- Learner → Panel UI: uses (evidence: `README.md`)
- Panel UI → Panel Controller: renders and routes (evidence: `panel/lib/app.js`)
- Panel Controller → Skill Checklist: builds checklist (evidence: `panel/lib/app.js`)
- Helper Process → Conversation Loop: creates client (evidence: `panel/helper/main.mjs`)
- Helper Process → MCP Client: creates MCP client (evidence: `panel/helper/main.mjs`)
- MCP Client → MCP Server: sends MCP requests (evidence: `panel/helper/lib/mcp-client.mjs`)
- MCP Server → Tool Registry: dispatches tools (evidence: `mentor/server.mjs`)
- Tool Registry → Shared Tools: adds shared tools (evidence: `mentor/tools/index.mjs`)
- Tool Registry → Skill Tools: loads skill modules (evidence: `mentor/tools/index.mjs`)
- Shared Tools → Bridge Client: calls bridge (evidence: `mentor/tools/common.mjs`)
- Shared Tools → Lesson Session: uses session (evidence: `mentor/tools/common.mjs`)
- Shared Tools → Learner Record: uses learner record (evidence: `mentor/tools/common.mjs`)
- Shared Tools → Skill Recommendation: uses recommendations (evidence: `mentor/tools/common.mjs`)
- Bridge Client → After Effects: sends HTTP requests (evidence: `mentor/bridge-client.mjs`)
- After Effects → ExtendScript Bridge: runs bridge script
- ExtendScript Bridge → AE Skill Scripts: runs snippets
- Lesson Session → Learner Record: reads record (evidence: `mentor/lib/session.mjs`)
- Learner Record → Review Schedule: tracks review state
- Learner → Local Installer: installs locally (evidence: `README.md`)
