Agentic OS Setup Guide

An Agentic Operating System with Amazon Quick + Claude Code

By: Steve Dillon; @dsdillon

๐Ÿง  Compound Knowledge ๐ŸŒ… Daily Morning Brief ๐Ÿ”„ Self-Maintaining ๐Ÿค Cross-Platform Context

โšก 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.

bash
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:

Paste into Amazon Quick
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.
Orchestration Layer AMAZON QUICK Knowledge Graph ยท Scheduled Agents ยท Slack / Email / Asana / Calendar Learning & Memory Bridge COMPOUND KNOWLEDGE [LEARNING] [PATTERN] [DECISION] โ†’ Auto-synthesis Heartbeat ยท Wrap-up ยท Manifest SELF-MAINTENANCE Session lifecycle ยท Skill registry ยท 30-min auto-close Obsidian Vault / Local Folder SHARED CONTEXT Identity ยท Brand Context ยท Knowledge ยท Session Logs Local Coding Agent CLAUDE CODE File editing ยท Terminal ยท Skills ยท Hooks Dev Environment EXTERNAL TOOLS Obsidian ยท Git ยท Deploy Target ยท Browser shared filesystem

How It All Connects

You work in Claude Code
    โ†“ (every message)
user-prompt-tracker.sh โ†’ creates/appends session file
    โ†“ (every 5 min)
session-finalizer.sh
    โ”œโ”€โ”€ Renames sessions
    โ”œโ”€โ”€ Extracts [LEARNING] [PATTERN] [DECISION] tags
    โ”œโ”€โ”€ Auto-closes idle sessions (30 min)
    โ”œโ”€โ”€ Triggers synthesize-knowledge.sh โ†’ COMPOUND_KNOWLEDGE.md
    โ””โ”€โ”€ Triggers generate-manifest.sh โ†’ SKILL_MANIFEST.md
 
Next CC session โ†’ heartbeat reads user.md + COMPOUND_KNOWLEDGE.md + SKILL_MANIFEST.md
 
Daily at 6 AM โ†’ AQ morning brief agent
    โ”œโ”€โ”€ Scans Slack, email, Asana, calendar, CC sessions
    โ”œโ”€โ”€ Synthesizes action items
    โ”œโ”€โ”€ Sends Slack DM + email
    โ””โ”€โ”€ Writes to 00_System/aq-context/ (CC reads these too)

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):

Folder Structure
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:

soul.md
# 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.md
# 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
# 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:

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:

  1. Renames sessions with generic IDs based on key term extraction
  2. Extracts [LEARNING], [PATTERN], [DECISION] tagged blocks โ†’ individual files
  3. Auto-closes sessions idle for 30+ minutes (flips status: active โ†’ completed)
  4. Triggers compound synthesis (step 2c) and manifest generation (step 3b)

Create a launchd plist at ~/Library/LaunchAgents/com.claude.session-finalizer.plist:

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:

bash
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:

Example Tags
[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:

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.md for YAML frontmatter
  • Writes ~/.claude/SKILL_MANIFEST.md with 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:

SKILL.md frontmatter
---
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":

  1. List deliverables (git status or recently modified files)
  2. Persist work (git-agnostic โ€” commit if .git/, deploy if applicable, else confirm saved)
  3. Write 3-5 line session summary to the active session file
  4. 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:

  1. Scans Slack channels (last 24 hrs) โ€” extracts decisions, action items, design feedback
  2. Scans email inbox (last 24 hrs) โ€” flags meeting invites, requests needing response, deadlines
  3. Reads Asana tasks โ€” open tasks due this week, overdue, completed yesterday
  4. Reads today's calendar โ€” meetings, conflicts, OOO teammates
  5. Reads yesterday's CC sessions โ€” what was worked on
  6. Reads skill manifest โ€” any changes to the skill registry
  7. 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:00 UTC
  • 6:00 AM PST = 14:00 UTC
  • 9:00 AM EST = 14:00 UTC

4c. Additional Context Sync

The same agent also writes:

  • people-context.md โ€” collaborators by project from the Knowledge Graph
  • recent-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:

  1. Ask Claude Code to read all your session files
  2. For each session, identify learnings/patterns/decisions that should have been tagged
  3. Write them to the appropriate knowledge/ folders
  4. Run synthesize-knowledge.sh --force to 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

IssueFix
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.