Claude Code has the richest AgentOS integration: a three-layer config model (behavioural contract, memory, and commands), two auto-sync hooks that keep everything current without manual steps, a permission allowlist that eliminates most confirmation prompts, and a Haiku sub-agent delegation pattern that keeps main session token costs low.
Claude Code's configuration composes across three files in clients/claude/. Each file has a distinct role; keeping them separate makes each easier to maintain and reason about independently.
Behavioral contract. Encodes output style (TL;DR first, bullets over paragraphs), language rules (no em dashes, no AI openers), assumed knowledge level, the VSCode extension deploy gate, and markdown formatting standards. Loaded unconditionally every session. Synced to ~/.claude/CLAUDE.md.
Persistent context. Four types: user (who Jason is), feedback (corrections and confirmed approaches), project (ongoing work, deadlines, decisions), reference (external system pointers). Indexed by MEMORY.md. Global memory is loaded every session; project memory is loaded per-workspace. Sourced from clients/shared/memory/.
Global slash commands available in any project via /jn-* prefix. Sourced from clients/shared/skills/. Cover the full post-build workflow: compile and deploy VSCode extensions, update changelogs and docs, run the full ship sequence, sync memory and config between sessions.
Claude Code assembles context from several sources at session start. The global layer always loads; the project layer loads when Claude runs inside a project directory.
The repo is the canonical source. sync.ps1 deploys to the runtime and cleans stale files. Two hooks in settings.json automate routine sync so manual intervention is rarely needed.
Deploys CLAUDE.md, memory files (sourced from clients/shared/memory/), shared commands (sourced from clients/shared/skills/), and settings.json to ~/.claude/. Cleans stale files from prior runs. Safe to run repeatedly. This is the only command that writes to the runtime.
Registered in settings.json. Runs sync.ps1 push-runtime every time Claude Code exits. Any in-session config changes (memory writes, command edits) are captured back into source control automatically. No manual sync needed during normal use.
Fires immediately when Claude writes any file inside ~/.claude/memory/ or ~/.claude/commands/. Runs push-runtime in-session, not waiting for the Stop hook. Memory writes are pushed to the repo in real time.
| Command | What it does |
|---|---|
| push-runtime | Deploys canonical config to ~/.claude/. Cleans stale files first. Source of truth direction only. |
| pull-extracted | Stages files from ~/.claude/memory/_extracted/ into memory/_extracted/ for review. Does not auto-commit. |
| clean-runtime | Removes all managed files from ~/.claude/, then re-runs push-runtime. Handles orphan cleanup on restructures. |
Portfolio reads and orchestration commands use a lightweight sub-agent pattern. Instead of running portfolio reads in the main session context, each jn-read-* command spawns a dedicated Haiku sub-agent. The cheap model does the work; the main session stays focused and light.
Each jn-read-* command (identity, role, current-projects, etc.) spawns a Haiku sub-agent that reads the corresponding portfolio:// resource and returns the content synchronously to the main session. Token overhead shifted to Haiku rates.
Commands like jn-ext-deploy, jn-website-commit, and jn-git-commit delegate complex workflows to Haiku sub-agents. The sub-agent inherits project context (CLAUDE.md, MEMORY.md) automatically and runs without the full memory of the calling session.
18 entries in settings.json permissions.allow auto-approve specific tool patterns across all sessions. These cover operations that are auditable and safe within the orchestration context.
| Repo path | Deployed to | Purpose |
|---|---|---|
| clients/claude/CLAUDE.md | ~/.claude/CLAUDE.md | Behavioral contract |
| clients/shared/memory/global.md | ~/.claude/memory/global.md | Identity and stack |
| clients/shared/memory/conventions.md | ~/.claude/memory/conventions.md | Technical conventions (Salesforce, git, code standards) |
| clients/shared/memory/projects/*.md | ~/.claude/memory/projects/*.md | Per-project context files |
| clients/shared/skills/*.md | ~/.claude/commands/*.md | 16 shared global slash commands |
| clients/claude/settings.json | ~/.claude/settings.json | Hooks and permission allowlists |
All sourced from clients/shared/skills/ and deployed to all three clients. Available in Claude Code as slash commands. Each is logged to the MCP server on invocation via the PreToolUse hook.
Compile VSCode extension TypeScript source
Package extension to .vsix, auto-bumps version in package.json
Install latest .vsix into VSCode via code.cmd
Orchestrates compile → package → install as sub-commands
Staged commit with confirmation gate (skipped with --auto)
Push to remote with confirmation gate (skipped with --auto)
Read portfolio resources from the MCP server
Run sync.ps1 push-runtime to deploy canonical config
Run Cursor client sync.ps1 push-runtime
Draft and prepend a dated changelog entry with confirmation
Identify and update affected .md files from git diff
Draft and write showcase site copy for current project
Full post-build orchestrator: changelog → docs → site copy → commit → push
Refresh cached analytics data for the dashboard