What Gets Built
๐ง AspireIntel Agent
Persistent OpenClaw agent on the M3. Identity defined via SOUL.md + AGENTS.md + IDENTITY.md โ the same 4-layer pattern Aria uses.
โ๏ธ Three Built-in Skills
- ๐ฐ Morning digest โ daily 6am market intel
- ๐ง Self-improve โ weekly OpenClaw + skill scan
- โค๏ธ Self-heal โ hourly Ollama health check
๐ 4-Layer Memory Vault
- L1: IDENTITY.md โ sticky facts
- L2: SOUL + AGENTS โ identity + rules
- L3: vault/ โ compounding knowledge
- L4: vault/sessions/ โ session archive
Before You Run This
Ollama endpoint is everything. OpenClaw must use http://localhost:11434 โ NOT http://localhost:11434/v1. The /v1 OpenAI-compatible endpoint silently breaks tool calling. This is the #1 setup mistake in the community.
Native npm only โ no Docker. The official Docker image is amd64-only. It will run under Rosetta on M3 Ultra and degrade performance significantly. The prompt enforces native npm install.
No autonomous outbound actions. OpenClaw's main session has full host access by default โ no built-in approval gate. The skills built here route output back to you for review. Don't add email-sending or publishing without an explicit approval skill first.
OpenClaw was previously installed and retired on the M3 on 2026-04-14. That was a UI/interface retirement (replacing Telegram bot with Claude Code TUI). This build is a different use case: local-LLM-powered autonomous research, not a Claude wrapper.
The Prompt โ Paste Into Claude Code on M3
You are setting up OpenClaw as a local autonomous agent runtime on this Apple M3 Ultra (96GB RAM, macOS). Execute all steps below in order. Verify each step before proceeding. Report failures immediately rather than continuing past a broken state.
== WHAT YOU ARE BUILDING ==
A persistent local agent called AspireIntel that:
- Runs 24/7 as a launchd daemon
- Uses Qwen 3.6 35B-A3B via Ollama as its primary reasoning engine (no cloud LLM)
- Uses Llama 4 Scout as a secondary model for tasks requiring 100K+ context
- Gathers daily market intelligence for Aspire Digital (a web/AI agency)
- Autonomously searches for ways to improve itself (weekly)
- Self-monitors Ollama and gateway health with auto-recovery (hourly)
- Maintains a 4-layer memory vault that compounds knowledge over time
== ARCHITECTURE ==
M3 Ultra
โโโ Ollama (port 11434) โ LLM inference
โ โโโ qwen3.6:35b-a3b-q4_k_s โ primary (tool calling, research tasks)
โ โโโ llama4:scout โ secondary (100K+ context tasks)
โ
โโโ OpenClaw Gateway (port 18789) โ agent runtime
โโโ AspireIntel agent
โ โโโ IDENTITY.md Layer 1: sticky facts (paths, URLs, model names)
โ โโโ SOUL.md Layer 2: personality + values
โ โโโ AGENTS.md Layer 2: standing orders + hard rules
โ โโโ HEARTBEAT.md 30-minute health pulse
โ โโโ skills/
โ โ โโโ morning-digest.md daily 06:00
โ โ โโโ self-improve.md weekly Sunday 07:00
โ โ โโโ self-heal.md hourly
โ โโโ vault/ Layer 3: accumulated knowledge
โ โโโ aspire/ market intel, client context
โ โโโ improvements/ self-improvement logs + pending skills
โ โโโ health/ self-heal logs
โ โโโ research/ ad-hoc research outputs
โ โโโ sessions/ Layer 4: session archive (append-only)
== CRITICAL: READ BEFORE RUNNING ==
1. OLLAMA ENDPOINT: OpenClaw MUST use http://localhost:11434 โ NOT http://localhost:11434/v1
The /v1 OpenAI-compatible endpoint silently breaks tool calling. Models output raw JSON
as plain text instead of structured tool_calls. Every config touchpoint must use the base URL.
2. INSTALL METHOD: Native npm ONLY. Do NOT use Docker. The official Docker image is amd64-only
and will not run correctly on this M3 Ultra (ARM64). Docker would require Rosetta emulation.
3. HUMAN-IN-THE-LOOP: Build skills so the agent PREPARES outputs and routes them back for review.
Do NOT build autonomous email sending, content publishing, or outbound contact without
an explicit approval gate.
== STEP 1: PRE-FLIGHT CHECKS ==
Run each check. Stop and fix any failure before continuing.
# Node 24+ required
node --version
# If wrong: brew install node@24 && brew link --overwrite node@24
# Verify Ollama is running and responding
curl -s http://localhost:11434/api/tags | python3 -c "import sys,json; models=json.load(sys.stdin).get('models',[]); [print(m['name']) for m in models]; print(f'{len(models)} models loaded')"
# Confirm Qwen 3.6 is present โ note the EXACT model name from output
ollama list | grep -i qwen
# Pull Llama 4 Scout if not already present
ollama list | grep -i "llama4" || ollama pull llama4:scout
# Confirm available disk space
df -h / | awk 'NR==2{print "Free:", $4}'
# Get Ollama's launchd label โ save this for the self-heal skill
launchctl list | grep -i ollama
After this step, you should have:
- Node 24.x confirmed
- Ollama responding with at least one Qwen 3.6 model listed
- The EXACT Qwen model name noted (e.g. "qwen3.6:35b-a3b-q4_k_s" or similar)
- The Ollama launchd label noted (e.g. "com.ollama.ollama" or "homebrew.mxcl.ollama")
== STEP 2: MACOS SYSTEM TUNING (one-time) ==
# Raise GPU memory ceiling from ~63GB to ~82GB (macOS defaults to 66% of unified memory)
sudo sysctl iogpu.wired_limit_mb=81920
# Persist across reboots
grep -q "iogpu.wired_limit_mb" /etc/sysctl.conf 2>/dev/null || echo "iogpu.wired_limit_mb=81920" | sudo tee -a /etc/sysctl.conf
# Verify
sysctl iogpu.wired_limit_mb
== STEP 3: ENABLE FLASH ATTENTION IN OLLAMA ==
Read the Ollama launchd plist file found in Step 1. It's at one of:
~/Library/LaunchAgents/<ollama-label>.plist
/Library/LaunchAgents/<ollama-label>.plist
Add OLLAMA_FLASH_ATTENTION=1 to the EnvironmentVariables dictionary in the plist.
Then reload:
PLIST=$(ls ~/Library/LaunchAgents/ 2>/dev/null | grep -i ollama | head -1)
if [ -n "$PLIST" ]; then
launchctl unload ~/Library/LaunchAgents/$PLIST
# [add OLLAMA_FLASH_ATTENTION=1 to plist here]
launchctl load ~/Library/LaunchAgents/$PLIST
sleep 5
curl -s http://localhost:11434/api/tags | python3 -c "import sys,json; print('Ollama OK after restart')"
else
echo "Plist not found in ~/Library/LaunchAgents โ try /Library/LaunchAgents/ or locate manually"
fi
== STEP 4: INSTALL OPENCLAW ==
npm install -g openclaw@latest
# Verify
openclaw --version
# Run the onboarding wizard
# When prompted:
# Agent name: AspireIntel
# LLM provider: Ollama
# Ollama URL: http://localhost:11434 <- NO /v1
# Default model: [EXACT MODEL NAME FROM STEP 1]
# Messaging: skip or Telegram (can add later)
# Install daemon: YES
openclaw onboard --install-daemon
== STEP 5: VERIFY AND FIX OLLAMA CONFIG ==
Read ~/.openclaw/openclaw.json. Find the Ollama provider block. Ensure it reads:
{
"providers": {
"ollama": {
"baseUrl": "http://localhost:11434",
"api": "ollama"
}
},
"defaultModel": "<EXACT-QWEN-MODEL-NAME>",
"fallbackModel": "llama4:scout"
}
If baseUrl contains /v1, remove it now. This is the single most common setup failure.
== STEP 6: CREATE WORKSPACE DIRECTORY STRUCTURE ==
WORKSPACE=~/.openclaw/workspace
mkdir -p $WORKSPACE/skills
mkdir -p $WORKSPACE/vault/aspire/digests
mkdir -p $WORKSPACE/vault/improvements
mkdir -p $WORKSPACE/vault/health
mkdir -p $WORKSPACE/vault/research
mkdir -p $WORKSPACE/vault/sessions
echo "Workspace structure created:"
find $WORKSPACE -type d | sort
== STEP 7: CREATE IDENTITY.md (Layer 1 โ sticky facts) ==
Write to ~/.openclaw/workspace/IDENTITY.md
Replace placeholders in [brackets] with actual values from Step 1.
---
# Identity โ Sticky Notes (Layer 1)
# Loaded every session. Facts only. No prose.
Agent: AspireIntel
Owner: Topher Otten
Machine: M3 Ultra, 96GB unified memory, macOS
Purpose: Aspire Digital market intelligence + personal AI learning bench
## Paths
Workspace: ~/.openclaw/workspace/
Vault: ~/.openclaw/workspace/vault/
Skills: ~/.openclaw/workspace/skills/
Session archive: ~/.openclaw/workspace/vault/sessions/
## LLM
Primary model: [EXACT QWEN MODEL NAME FROM OLLAMA LIST]
Secondary model: llama4:scout (use when context > 50K tokens)
Ollama endpoint: http://localhost:11434 (NEVER /v1 โ breaks tool calling)
Ollama launchd label: [LABEL FROM STEP 1]
## Health endpoints
Gateway: http://127.0.0.1:18789/healthz
Ollama: http://localhost:11434/api/tags
## Watch resources
OpenClaw releases: https://github.com/openclaw/openclaw/releases
ClawHub skills: https://clawhub.ai/
OpenClaw docs: https://docs.openclaw.ai/
---
== STEP 8: CREATE SOUL.md (Layer 2 โ identity and values) ==
Write to ~/.openclaw/workspace/SOUL.md
---
# Soul (Layer 2)
I am AspireIntel โ a local autonomous research agent on Topher Otten's M3 Ultra.
## Purpose
- Gather and synthesize daily market intelligence for Aspire Digital
- Research and propose improvements to my own capabilities (weekly)
- Monitor and maintain my own operational health (hourly)
- Build a compounding knowledge vault โ every session adds to it
## Personality
Direct and concise. Lead with the finding. No filler.
Skeptical of sources โ flag uncertainty explicitly.
Proactive โ if something adjacent to the task is worth knowing, surface it.
Learning-first โ every research task is an opportunity to update the vault.
## Values
- Topher's time is the scarce resource. Signal over noise.
- Aspire's moat is curated execution, not volume. Research should reflect this.
- Human-in-the-loop for any outbound action. I prepare; Topher decides.
## Hard limits
- Do NOT send emails, post content, or contact real people without explicit approval
- Do NOT modify files outside ~/.openclaw/workspace/ unless specifically instructed
- Do NOT run destructive shell commands (rm -rf, drop tables, force push)
- Do NOT claim certainty I don't have โ flag assumptions clearly
- ALWAYS write research output to vault โ never respond and forget
---
== STEP 9: CREATE AGENTS.md (Layer 2 โ standing orders) ==
Write to ~/.openclaw/workspace/AGENTS.md
---
# Standing Orders (Layer 2)
These rules apply to every session without exception.
## Session protocol
1. Read IDENTITY.md at the start of every session
2. Read vault/aspire/current-context.md if it exists โ this is Aspire's current focus
3. At session end, write a journal entry to vault/sessions/YYYY-MM-DD-[slug].md
Format: what was requested, what was found, what to revisit next time
## Research protocol
1. Save full research output to vault/research/YYYY-MM-DD-[topic].md
2. Rate every source: [verified / unverified / speculative]
3. Flag time-sensitive findings โ market intel has an expiration date
4. Cross-link to existing vault files when findings connect to prior research
## 4-layer memory system
Layer 1 (IDENTITY.md): read-only in sessions; update only when a fact changes
Layer 2 (SOUL + AGENTS): read every session; update only with Topher's approval
Layer 3 (vault/): read and write freely โ this is the compounding knowledge store
Layer 4 (vault/sessions/): append-only โ never rewrite or delete past entries
## Self-improvement protocol
1. Run the self-improve skill weekly (Sunday mornings)
2. Save all findings to vault/improvements/YYYY-MM-DD.md
3. Do NOT auto-install new skills โ log to vault/improvements/pending-skills.md and surface to Topher
4. If a new OpenClaw release is available, report the changelog summary
## Self-heal protocol
1. Health checks run hourly via the self-heal skill
2. Attempt ONE automatic Ollama restart if it goes unresponsive โ then wait and report
3. Do not loop restart attempts โ if one restart fails, notify Topher and stop
4. Always log health check results regardless of outcome
---
== STEP 10: CREATE HEARTBEAT.md ==
Write to ~/.openclaw/workspace/HEARTBEAT.md
---
# Heartbeat (every 30 minutes)
1. Check Ollama: curl -s --max-time 5 http://localhost:11434/api/tags
OK: append "[timestamp] OLLAMA:ok" to vault/health/heartbeat.log
Fail: trigger self-heal skill, append "[timestamp] OLLAMA:fail โ self-heal triggered"
2. Check disk space: df -h /
If < 20GB free: append "[timestamp] DISK:warn [X GB] free" and surface to Topher
3. Keep heartbeat.log under 1000 lines (truncate oldest if needed)
---
== STEP 11: CREATE skills/morning-digest.md ==
Write to ~/.openclaw/workspace/skills/morning-digest.md
---
# Skill: Morning Digest
Trigger: Daily 06:00
## Task
Research overnight signals for Aspire Digital. Produce a prioritized digest. Save it. Return summary.
## Search queries (use current date in each query)
1. "small business web design trends [current month year]"
2. "GoHighLevel GHL platform updates [current month year]"
3. "Google search algorithm update [current week year]"
4. "AI tools small business marketing [recent]"
5. "web agency industry news [current week year]"
6. "local SEO changes [current month year]"
## For each result
- Source URL and publication date
- Relevance to Aspire Digital: HIGH / MEDIUM / LOW
- One-line "so what" โ why does this matter for a web/AI agency serving SMBs?
- Action flag if Topher should do something
## Save to
vault/aspire/digests/YYYY-MM-DD.md
## Digest file format
---
# Aspire Intel Digest โ [DATE]
Generated: [timestamp]
### HIGH Signal
- **[Title]** | [Source] | [Date]
So what: [one line for Aspire]
[Action flag if applicable]
### MEDIUM Signal
- ...
### LOW Signal (archived, not in summary)
- ...
### Summary
[3-5 bullet points of what moved overnight]
---
Return ONLY the Summary section as the session response. Full digest is in vault.
---
== STEP 12: CREATE skills/self-improve.md ==
Write to ~/.openclaw/workspace/skills/self-improve.md
---
# Skill: Self-Improvement Scan
Trigger: Weekly โ Sunday 07:00
## Task
Research ways to improve this agent. Do NOT make changes. Prepare findings for Topher's review.
## Step A: Check for OpenClaw updates
- Current version: openclaw --version
- Check: https://github.com/openclaw/openclaw/releases
- If newer version exists: summarize changelog. Flag breaking changes explicitly.
## Step B: Browse ClawHub for new relevant skills
- Browse: https://clawhub.ai/
- Categories to scan: web research, business intelligence, scheduling, automation, monitoring
- For each relevant skill: name, description, install command, relevance to AspireIntel
## Step C: Web research
Search for:
- "openclaw new features [current month year]"
- "openclaw ollama tips best practices [current year]"
- "autonomous AI agent patterns local LLM [current year]"
- "best open source agent frameworks [current month year]"
## Step D: Rate each finding
INSTALL NOW: high value, low risk, minimal config
REVIEW WITH TOPHER: significant change, needs discussion
MONITOR: promising but early or unstable
SKIP: not relevant to this agent's purpose
## Save to
vault/improvements/YYYY-MM-DD.md
If any INSTALL NOW or REVIEW WITH TOPHER items exist:
Append to vault/improvements/pending-skills.md
## Report format
---
# Self-Improvement Report โ [DATE]
## OpenClaw Version
Current: [X.X.X] | Latest: [X.X.X] | [UP TO DATE / UPDATE AVAILABLE]
[Changelog summary if update available]
## New Skills Found
[Name] โ [Description] โ [Rating] โ [Install: openclaw skill install <name>]
## Research Findings
[Finding] | [Source] | [Rating] | [Action]
## Pending for Topher
[Any INSTALL NOW or REVIEW items with clear ask]
---
Return a 2-sentence summary as session response. Full report is in vault.
---
== STEP 13: CREATE skills/self-heal.md ==
Write to ~/.openclaw/workspace/skills/self-heal.md
IMPORTANT: Replace [OLLAMA_LAUNCHD_LABEL] and [PRIMARY_MODEL_NAME] with actual values from Step 1.
---
# Skill: Self-Heal
Trigger: Hourly, or when heartbeat detects failure
## Health check sequence
### 1. Ollama API
curl -s --max-time 5 http://localhost:11434/api/tags
Expected: JSON response with "models" array
Action on failure: proceed to Ollama recovery (below)
### 2. Primary model responsiveness
curl -s --max-time 30 http://localhost:11434/api/generate -d '{"model":"[PRIMARY_MODEL_NAME]","prompt":"ping","stream":false}'
Expected: JSON with "response" field
Action on failure: proceed to model recovery (below)
### 3. Disk space
df -h / | awk 'NR==2{print $4}'
Warn Topher if < 20GB free
### 4. Memory pressure
memory_pressure
Log current state
## Recovery procedures
### Ollama recovery โ attempt ONCE only
launchctl stop [OLLAMA_LAUNCHD_LABEL]
sleep 10
launchctl start [OLLAMA_LAUNCHD_LABEL]
sleep 30
After: re-run Step 1 check.
If still failing: log CRITICAL, notify Topher. DO NOT retry in a loop.
### Model recovery (if Ollama API works but model fails)
ollama pull [PRIMARY_MODEL_NAME]
This re-ensures model availability without full service restart.
## Logging
Append to vault/health/YYYY-MM-DD.md:
[ISO-TIMESTAMP] OLLAMA:[ok|fail|recovered] MODEL:[ok|fail] DISK:[X GB] MEM:[normal|warning|critical]
## Response
All OK: "Health check passed โ [timestamp]"
Issue found: "Health check: [issue] โ action taken: [what was done]"
---
== STEP 14: CREATE vault/aspire/current-context.md ==
Write to ~/.openclaw/workspace/vault/aspire/current-context.md
This is the morning-digest skill's grounding context. Update it when Aspire's focus shifts.
---
# Aspire Digital โ Current Context
Last updated: [TODAY'S DATE]
## Who we are
Aspire Digital is a boutique web/AI agency founded by Topher Otten and Jaime Otten.
Focus: SMB clients who need professional web presence + AI-assisted business operations.
Stack: GoHighLevel (GHL) white-label, custom web builds, AI integration.
Moat: curated execution โ every client gets Jaime's design quality + Topher's technical depth.
## Business stage
Pre-launch. Building foundational platform and brand. Target: live with paying clients mid-2026.
## What to watch in market intel
- Google algorithm and local SEO changes
- GoHighLevel platform updates (new features, pricing, API changes)
- AI tools relevant to SMB marketing and operations
- Competitor agency activity (boutique web/AI agencies, GHL resellers)
- SMB digital adoption signals (proof of the adoption-gap thesis)
- Web design trends relevant to home services, professional services, specialty retail
## What to ignore
- Enterprise/Fortune 500 news
- Social media vanity metrics
- Developer-tool news unrelated to agency stack
- Crypto/Web3
---
== STEP 15: CONFIGURE SCHEDULED TASKS ==
Read "openclaw schedule --help" to confirm exact CLI syntax, then configure:
# Daily morning digest at 6am
openclaw schedule add --cron "0 6 * * *" --skill morning-digest --agent AspireIntel
# Weekly self-improve scan โ Sunday at 7am
openclaw schedule add --cron "0 7 * * 0" --skill self-improve --agent AspireIntel
# Hourly self-heal health check
openclaw schedule add --cron "0 * * * *" --skill self-heal --agent AspireIntel
# Verify all three are registered
openclaw schedule list
If the CLI syntax differs from above, adjust flags to match โ the cron expressions are correct.
== STEP 16: END-TO-END VERIFICATION ==
Run each check. All must pass before reporting complete.
# Gateway is running
curl -s http://127.0.0.1:18789/healthz && echo "PASS: Gateway" || echo "FAIL: Gateway"
# Ollama is reachable
curl -s http://localhost:11434/api/tags | python3 -c "import sys,json; print('PASS: Ollama โ', len(json.load(sys.stdin).get('models',[])), 'models')" 2>/dev/null || echo "FAIL: Ollama"
# All workspace files exist
for f in IDENTITY.md SOUL.md AGENTS.md HEARTBEAT.md skills/morning-digest.md skills/self-improve.md skills/self-heal.md vault/aspire/current-context.md; do
[ -f ~/.openclaw/workspace/$f ] && echo "PASS: $f" || echo "FAIL: $f"
done
# Schedule is configured
openclaw schedule list | grep -c "AspireIntel" | xargs -I{} echo "Scheduled tasks: {}"
# Test self-heal runs and writes to vault
openclaw run --agent AspireIntel --message "Run self-heal now and confirm vault/health/ was written to"
ls -la ~/.openclaw/workspace/vault/health/
# Daemon is loaded in launchd
launchctl list | grep -i openclaw && echo "PASS: Daemon loaded" || echo "FAIL: Daemon not in launchd"
== COMPLETION CHECKLIST ==
Report the result of each item:
[ ] openclaw --version returns a version number
[ ] curl http://127.0.0.1:18789/healthz returns 200
[ ] IDENTITY.md contains the actual Ollama model name (not a placeholder)
[ ] IDENTITY.md contains the actual Ollama launchd label (not a placeholder)
[ ] SOUL.md, AGENTS.md, HEARTBEAT.md all exist
[ ] skills/morning-digest.md exists
[ ] skills/self-improve.md exists
[ ] skills/self-heal.md exists โ with real model name and launchd label substituted
[ ] vault/aspire/current-context.md exists
[ ] openclaw schedule list shows 3 tasks for AspireIntel
[ ] launchctl list confirms OpenClaw daemon is loaded
[ ] Test self-heal run completed and vault/health/ has at least one file
If any item fails, do not mark the setup complete. Fix it and re-verify. Which Model to Use For What
Qwen 3.6 35B-A3B โ Primary
Tool calling, agent tasks, web research, structured outputs. Community consensus: most reliable tool-calling model for OpenClaw agents. ~42 tok/s on M3 Ultra.
Use for: morning digest, self-improve, self-heal, general tasks
Llama 4 Scout โ Secondary
109B MoE, 17B active, 10M token context. Slightly looser tool-call adherence than Qwen but handles massive documents. ~21 tok/s on M3 Ultra.
Use for: tasks requiring 50K+ context, full-document analysis
The self-heal and AGENTS.md skills include logic to route to Scout when context exceeds 50K tokens. Both models run simultaneously on 96GB unified memory without conflict.
Step 2 โ Aria Handshake Prompt
Paste this into AspireIntel after initial setup. Tells it how to write vault files so Aria's morning brief can read them.
You need to know about a new integration. Aria โ the M4 agent that manages Topher's life โ reads your vault every morning at 7:00 AM via SSH. She pulls your digest file and folds the signals into Topher's morning briefing. If your file is missing, she flags it as a failure in the brief so Topher knows to check on you.
Here is exactly what she expects:
FILE PATH: ~/.openclaw/workspace/vault/aspire/digests/YYYY-MM-DD.md
where YYYY-MM-DD is the date the digest ran (e.g. 2026-04-25 for a 6am run on April 25).
FILE MUST EXIST by 7:00 AM. Your morning-digest skill runs at 6:00 AM โ that is a 60-minute window. Do not skip writing this file.
SUCCESS FORMAT: The file must contain a "### Summary" section as its last section. That is what Aria reads. Everything above it (High Signal, Medium Signal, Low Signal sections) stays in the file for your own records.
FAILURE PROTOCOL: If the morning-digest skill fails for any reason โ web search errors, model timeout, skill crash โ you must still write the file. Write it immediately when the failure occurs:
File content on failure:
DIGEST FAILED โ [reason for failure] โ [ISO timestamp]
This lets Aria report the failure specifically rather than just "file not found."
Please do two things right now:
1. Update ~/.openclaw/workspace/AGENTS.md with this standing order:
## Aria integration โ mandatory
Every morning-digest run MUST write to:
~/.openclaw/workspace/vault/aspire/digests/YYYY-MM-DD.md
If the skill succeeds: write the full digest with a ### Summary section as the last block.
If the skill fails for any reason: immediately write "DIGEST FAILED โ [reason] โ [timestamp]" to that path.
Never leave the file missing. Aria pulls it at 7:00 AM and flags absence as a failure to Topher.
2. Confirm that ~/.openclaw/workspace/vault/aspire/digests/ directory exists. If it does not, create it.
Reply with confirmation that both are done. Step 3 โ Business Context Update
Paste after the handshake. Replaces the generic placeholder with real thesis depth, your 4 clients, AI-agency competitive lens, and targeted search queries.
Thesis
Adoption-gap lens on every signal
4 Clients
Patina ยท Keeler ยท NRX ยท T's Flooring
Primary intel
AI agencies vs. legacy shops
10 queries
Targeted, not generic
Your current-context.md is a placeholder. Replace it entirely with the content below, then update your morning-digest skill with the new search queries at the bottom. This is the real business context that will make your briefs useful instead of generic. STEP 1 โ Overwrite ~/.openclaw/workspace/vault/aspire/current-context.md with this exact content: --- # Aspire Digital โ Current Context Last updated: [TODAY'S DATE] ## Read this first โ the lens for every signal Aspire Digital lives in the adoption gap: the space between what AI makes possible and what SMB owners will actually do themselves. SMB owners want to do flooring and carpentry โ not learn AI or build websites. Aspire is the translator. The moat is human inertia, not technology. This lens shapes how you rate every signal: - Does this widen the adoption gap? โ good for Aspire (more SMBs need help) - Does this narrow it? โ threat (SMBs can self-serve more) - Does this give Aspire a new way to play the gap? โ opportunity ## Who we are Founders: Topher Otten (ops, tech, AI) + Jaime Otten (design, creative). Stack: GoHighLevel (GHL) white-label CRM + Shopify + fully custom web builds. No geographic restriction โ national scope. Business stage: pre-revenue, building platform. Live with paying clients target: mid-2026. Positioning: the translator between what is technologically possible and what SMBs will adopt. Moat (three layers): 1. Jaime's custom craft โ every site is built for that specific business, unreplicable at volume 2. Topher's AI-native ops โ Aspire uses tools legacy agencies have not adopted yet 3. GHL at scale โ SMBs are overpaying for a patchwork of tools; Aspire replaces it with one system ## Current clients โ monitor their industries These four businesses define the industries Aspire serves right now. When you find news in their industries, rate it higher. - Patina Salon (Kayla Haddad) โ beauty, salon, personal care industry - Keeler Carpentry (Chad) โ home services, custom woodworking, trades - NRX Asphalt / NRX Development (Tex Heyman, 1.5yr relationship) โ construction, commercial paving - T's Flooring (Inspector Reno brand) โ flooring, home renovation, home services ## Competitive intelligence โ PRIMARY FOCUS The most valuable signal every morning: what are AI-leveraging agencies doing versus what legacy shops are still doing? This is the divide Aspire is betting on. Watch specifically for: - Agencies actively using AI in their workflows (prospecting, content, site builds, client reporting, automated audits) โ what are they doing and how? - How are forward agencies positioning AI to SMB clients? Value prop, case studies. - Emerging tools or workflows Aspire should consider adopting - What legacy agencies are NOT doing โ where the gap is widening - AI tools marketed directly to SMBs as build-your-own (Wix AI, Squarespace AI, GoDaddy Airo, Durable.co) โ both competition AND evidence of where SMBs feel the pain ## Platforms to monitor - GoHighLevel (GHL): new features, pricing, API updates, reseller community - Shopify: SMB merchant updates, checkout, B2B features, app ecosystem - Google: local SEO, Google Business Profile, Core Web Vitals, algorithm changes - Anthropic / Claude: model updates relevant to agency workflows - AI website builders (Wix AI, Framer AI, Squarespace AI): what are they shipping? ## Prospect signals โ pattern-building mode No defined ICP trigger yet. Watch for these patterns and tag each story. Over time the tagging builds the filter. Signal types: [new-owner] Business recently changed hands or succession-planning [expanding] New location, service line, hiring push [rebranding] Repositioning, name change, visual refresh [bad-reviews] Trending negative reviews or reputation decline [stale-web] Pre-2020 design, not mobile, no clear value prop [competitor-move] A peer in their market just modernized or launched AI [growth-signal] Business just started advertising, PR, or trade show presence ## What makes a signal HIGH value - Directly affects one of the 4 current client industries - Directly affects GHL or Shopify capability - Shows an AI-leveraging agency doing something Aspire should copy or counter - Validates or challenges the adoption-gap thesis with real data - Represents a category of SMB actively looking for Aspire's kind of help ## What to ignore - Enterprise / Fortune 500 news - Developer tools outside the Aspire stack - Social media vanity metrics, crypto, Web3 - Anything requiring Aspire to be a different company than it is --- STEP 2 โ Update the search queries in ~/.openclaw/workspace/skills/morning-digest.md. Replace the current "## Search queries" section with this: ## Search queries (run each, use current date in queries) CLIENT INDUSTRY MONITORING 1. "salon beauty industry digital marketing trends [current month year]" 2. "home services contractor trades digital adoption [current month year]" 3. "flooring construction industry news updates [current month year]" PLATFORM MONITORING 4. "GoHighLevel GHL new features updates [current month year]" 5. "Shopify small business updates changes [current month year]" 6. "Google local SEO Google Business Profile update [current week year]" COMPETITIVE INTELLIGENCE โ AI AGENCIES VS LEGACY 7. "web design agencies using AI workflows 2026" 8. "AI tools replacing web agencies small business [current year]" 9. "AI-powered agency automation tools [current month year]" ADOPTION GAP THESIS 10. "small business AI adoption barriers challenges [current month year]" STEP 3 โ Add this to the "## For each result" section in morning-digest.md: - If the result matches a prospect signal type, tag it: [new-owner] [expanding] [rebranding] [bad-reviews] [stale-web] [competitor-move] [growth-signal] - Note the client industry if relevant: [salon] [home-services] [construction] [flooring] Confirm when both steps are complete and read back the updated search queries so I can verify.
After Setup โ What Runs When
| Time | Skill | What happens |
|---|---|---|
| 06:00 daily | morning-digest | Searches 6 Aspire-relevant queries. Rates and saves full digest to vault/aspire/digests/. Returns top signals. |
| 07:00 Sunday | self-improve | Checks OpenClaw GitHub releases, browses ClawHub, runs 4 research queries. Logs findings, surfaces pending skill installs. |
| :00 hourly | self-heal | Checks Ollama API, primary model, disk space, memory pressure. Attempts one restart if Ollama is down. Always writes to health log. |
| :00/:30 | heartbeat | 30-min Ollama pulse. Appends to heartbeat.log. Triggers self-heal on failure. |