Agentic OS Setup Guide
An Agentic Operating System with Amazon Quick + Claude Code
โก Quick Start โฌ Download .zip
The zip contains everything โ hook scripts and installer for Claude Code, plus an AQ_SETUP.md that Amazon Quick reads to configure the orchestration side.
1. Run the installer (Claude Code side)
Paste these into Terminal, or ask Claude Code to run them for you โ it can execute the commands and answer the installer's prompts.
unzip agentic-os.zip cd scripts chmod +x install.sh ./install.sh
2. Point Amazon Quick at the .zip
Open Amazon Quick Suite Desktop and drag scripts/AQ_SETUP.md into the chat, or paste this pointer:
Read the file AQ_SETUP.md from the agentic-os.zip I just unzipped (path: /absolute/path/to/scripts/AQ_SETUP.md โ update this to your actual path, or just drag the file into this chat). Follow its instructions step by step. Ask me to confirm before each step. Do not assume defaults I haven't given you.
What You Get
An Agentic OS is a system where your AI tools (Claude Code and Amazon Quick) share context, memory, and skill awareness through a common knowledge base โ so they work as one coordinated system rather than isolated chatbots.
- ๐ง Compound knowledge โ every session's insights accumulate and compound over time
- ๐ Daily morning brief โ Slack DM + email with action items, calendar, Slack highlights, Asana tasks
- ๐ Self-maintaining โ the system syncs its own skill registry, closes idle sessions, and regenerates itself
- ๐ค Cross-platform context โ Claude Code knows what happened in Slack/email, Amazon Quick knows what you built in code
Prerequisites
- Claude Code installed and configured
- Amazon Quick (QuickSuite Desktop) with Slack, Outlook, and Asana connected
- An Obsidian vault (or any local markdown folder structure)
Architecture Overview
Two agents, one shared brain:
- Amazon Quick โ orchestration layer. Knowledge graph, long-term memory, scheduled agents, and native integrations with Slack, email, Asana, and calendar.
- Claude Code โ hands-on coding agent. Edits local files, runs the terminal, executes skills.
- Obsidian vault (or any local folder) โ shared context both agents read and write to.
- Compound knowledge pipeline โ auto-extracts insights from every Claude Code session and synthesizes them into themed knowledge available to both agents.
- Morning brief agent โ runs daily, pulls from every connected tool, and delivers a prioritized action-items summary.
How It All Connects
1 Create the Folder Structure
Create this folder structure in your Obsidian vault (or any local folder both Claude Code and Amazon Quick can access):
00_System/ โโโ identity/ โ โโโ soul.md โ Agent personality & behavioral rules โ โโโ user.md โ Your preferences & project context โโโ brand-context/ โ โโโ design-system.md โ Pointer to your design system docs โ โโโ brand-assets.md โ Pointer to brand asset locations โ โโโ voice-and-tone.md โ Writing guidelines โโโ manifest/ โ โโโ (SKILL_MANIFEST.md will be auto-generated here) โโโ aq-context/ โ โโโ (morning brief + context sync files written here daily) โโโ knowledge/ โ โโโ learnings/ โ Extracted [LEARNING] tags โ โโโ patterns/ โ Extracted [PATTERN] tags โ โโโ decisions/ โ Extracted [DECISION] tags โ โโโ COMPOUND_KNOWLEDGE.md โ Auto-synthesized compound knowledge โโโ sessions/ โ Raw CC session logs โโโ KNOWLEDGE_SYSTEM.md โ Docs for the tag extraction system
Write the identity files
soul.md โ How both agents should behave
Customize for your role:
# Agent Identity ## Role [Your role โ e.g., "Senior UX designer for a platform team"] ## Communication Style - [Your preference โ e.g., "Direct, concise โ bullet points over paragraphs"] - Proactively tag [LEARNING], [PATTERN], [DECISION] in CC sessions - Reference vault knowledge before giving advice ## Priorities 1. [Your top priority โ e.g., "Design quality"] 2. [Second priority โ e.g., "Speed"] 3. Knowledge capture (every session should leave traces) ## Guardrails - Never delete or overwrite data without explicit confirmation - Validate changes before declaring done - Check if a relevant skill exists before writing code from scratch
user.md โ Your preferences and project context
# User Preferences ## Working Style - [How you like outputs formatted] - [Tools you use daily] - [Any preferences for communication] ## Project Context - Primary projects: [list your active projects] - Design System: [what you use] - Deploy method: [Vercel, Netlify, internal, etc.] - VCS: [GitHub, GitLab, internal, etc. โ or "none for some projects"] ## Feedback History (Updated automatically by the wrap-up skill)
Write brand-context pointer files
These don't duplicate assets โ they just tell agents where to find the source of truth:
# design-system.md Source: [path to your design system skill or docs] Live docs: [URL if applicable] Key conventions: [e.g., "Internal packages, orange buttons"]
2 Set Up the Knowledge Capture Pipeline
This is the backbone โ it captures knowledge from every Claude Code session automatically.
2a. Session Tracker Hook
Create ~/.claude/skills/obsidian-save/hooks/user-prompt-tracker.sh โ a Claude Code UserPromptSubmit hook that:
- Creates a session file on first message (
YYYYMMDD-{slug}.md) - Appends each user message with timestamp
- Saves to
00_System/sessions/
Register it in ~/.claude/settings.json:
{
"hooks": {
"UserPromptSubmit": [
{
"matcher": "*",
"hooks": [
{
"type": "command",
"command": "/path/to/your/hooks/user-prompt-tracker.sh"
}
]
}
]
}
}
2b. Session Finalizer (launchd)
Create ~/.claude/skills/obsidian-save/hooks/session-finalizer.sh โ runs every 5 minutes via launchd:
- Renames sessions with generic IDs based on key term extraction
- Extracts
[LEARNING],[PATTERN],[DECISION]tagged blocks โ individual files - Auto-closes sessions idle for 30+ minutes (flips
status: active โ completed) - Triggers compound synthesis (step 2c) and manifest generation (step 3b)
Create a launchd plist at ~/Library/LaunchAgents/com.claude.session-finalizer.plist:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.claude.session-finalizer</string> <key>ProgramArguments</key> <array> <string>/bin/bash</string> <string>/path/to/hooks/session-finalizer.sh</string> </array> <key>StartInterval</key> <integer>300</integer> <key>RunAtLoad</key> <true/> <key>StandardOutPath</key> <string>/Users/YOU/.claude/logs/session-finalizer.log</string> <key>StandardErrorPath</key> <string>/Users/YOU/.claude/logs/session-finalizer.log</string> </dict> </plist>
Load it:
launchctl load ~/Library/LaunchAgents/com.claude.session-finalizer.plist
2c. Compound Knowledge Synthesis
Create ~/.claude/skills/obsidian-save/hooks/synthesize-knowledge.sh:
- Checks if any new learnings/patterns/decisions exist since last synthesis
- If yes โ runs
claude -p(headless) to read ALL source files + existing COMPOUND_KNOWLEDGE.md - Folds new entries into existing themes (preserves theme stability across runs)
- Writes
00_System/knowledge/COMPOUND_KNOWLEDGE.md
Key: This uses an LLM call (claude -p) but only runs when new material exists. The prompt tells Claude to preserve existing themes and fold new entries in, so the file gets smarter over time without losing structure.
Run manually with: synthesize-knowledge.sh --force
2d. Tag Your Work
During Claude Code sessions, tag insights inline:
[LEARNING: Strict CSP blocks external WebSocket connections] Live demos must run localhost-only โ a strict Content Security Policy rejects external WebSocket connections silently. [PATTERN: OAuth one-click setup] curl -X POST "$AUTH_URL" -d "grant_type=authorization_code&code=$CODE" Reduces 5-step manual setup to one copy-paste. [DECISION: Use iframe-isolated pattern for embedded shell] Trade-off: More complex initial setup, but better user testing isolation. Chosen over inline approach because of CSP constraints.
The session-finalizer extracts these automatically every 5 minutes.
3 Self-Maintenance
3a. Heartbeat (CLAUDE.md)
Add this to the TOP of your ~/.claude/CLAUDE.md:
# Session Start (Heartbeat) On first message of a new session, read these files for context: 1. `cat ~/path/to/00_System/identity/user.md` โ preferences 2. `cat ~/path/to/00_System/knowledge/COMPOUND_KNOWLEDGE.md` โ compound learnings 3. `cat ~/.claude/SKILL_MANIFEST.md` โ current skill registry (if it exists) Do this silently โ don't announce you're reading them.
This gives Claude Code ambient context on every session start โ your preferences, accumulated knowledge, and available skills.
3b. Skill Manifest Generator
Create ~/.claude/skills/obsidian-save/hooks/generate-manifest.sh:
- Scans every
~/.claude/skills/*/SKILL.mdfor YAML frontmatter - Writes
~/.claude/SKILL_MANIFEST.mdwith a routing table (name + description per skill) - Detects overlapping skills (shared trigger keywords)
- Called by session-finalizer after synthesis
Every skill needs YAML frontmatter for the manifest to pick it up:
--- name: my-skill description: What this skill does. Triggers on keyword1, keyword2, keyword3. ---
3c. Wrap-Up Skill
Create ~/.claude/skills/wrap-up/SKILL.md โ triggered by /wrap-up, "close session", or "done for now":
- List deliverables (git status or recently modified files)
- Persist work (git-agnostic โ commit if
.git/, deploy if applicable, else confirm saved) - Write 3-5 line session summary to the active session file
- Run
generate-manifest.sh
4 Amazon Quick Integration
4a. Connect Your Tools
In Amazon Quick, go to Settings โ Capabilities โ Connections and connect:
- Slack โ for channel scanning
- Outlook โ for email + calendar
- Local folders โ add your vault folder (e.g.,
~/Documents/your-vault/)
4b. Morning Brief Agent
Create a scheduled agent in Amazon Quick that runs daily. This is the orchestration centerpiece โ it pulls from all your connected systems and writes a comprehensive morning brief.
What it does each morning:
- Scans Slack channels (last 24 hrs) โ extracts decisions, action items, design feedback
- Scans email inbox (last 24 hrs) โ flags meeting invites, requests needing response, deadlines
- Reads Asana tasks โ open tasks due this week, overdue, completed yesterday
- Reads today's calendar โ meetings, conflicts, OOO teammates
- Reads yesterday's CC sessions โ what was worked on
- Reads skill manifest โ any changes to the skill registry
- Synthesizes โก Action Items at the top โ prioritized by urgency
Delivers via:
- Slack DM (scannable on mobile)
- Email (for reference)
- Vault file at
00_System/aq-context/morning-brief.md(for CC to read on session start)
Schedule timezone reference:
Configure the schedule for your timezone (the time_of_day setting uses UTC internally):
- 6:00 AM PDT =
13:00UTC - 6:00 AM PST =
14:00UTC - 9:00 AM EST =
14:00UTC
4c. Additional Context Sync
The same agent also writes:
people-context.mdโ collaborators by project from the Knowledge Graphrecent-decisions.mdโ decisions from Slack/email/meetings (last 7 days)project-status.mdโ active project snapshot
These give Claude Code ambient awareness of your work relationships and project status.
5 Retroactive Knowledge Sweep (Optional)
If you already have Claude Code session history, you can extract knowledge retroactively:
- Ask Claude Code to read all your session files
- For each session, identify learnings/patterns/decisions that should have been tagged
- Write them to the appropriate
knowledge/folders - Run
synthesize-knowledge.sh --forceto rebuild COMPOUND_KNOWLEDGE.md
This dramatically enriches your compound knowledge from day one โ a representative sweep can extract dozens of insights from a hundred-plus existing sessions.
Customization Tips
- Slack channels: Configure which channels to full-scan vs. mention-only scan
- Soul.md: Tailor the agent personality to your role and domain
- Brand context: Point to your team's design system (Material, Cloudscape, custom, etc.)
- Skill manifest: Every skill with frontmatter gets auto-registered
- Morning brief timing: Adjust the UTC schedule time for your timezone
- Auto-close threshold: 30 minutes is the default; adjust in session-finalizer.sh
Troubleshooting
| Issue | Fix |
|---|---|
| COMPOUND_KNOWLEDGE.md not updating | Check ~/.claude/logs/synthesize-knowledge.log. Run synthesize-knowledge.sh --force manually. |
| Morning brief not arriving | Check get_agent_run_history in AQ. Verify schedule_time is in UTC. |
| Session-finalizer not running | launchctl list | grep session-finalizer. Check the log file. |
| Slack DM not visible | Check your self-DMs in Slack โ the agent sends as you. |
| Skills missing from manifest | Ensure each skill has --- YAML frontmatter with name: and description:. |
| No tags being extracted | Claude Code needs [LEARNING: Title] format exactly โ check KNOWLEDGE_SYSTEM.md for syntax. |