Add vault content - WORK folder, Tasks, Projects, Summaries, Templates

This commit is contained in:
AlexAI
2026-02-24 09:46:07 -06:00
parent bc3284ad69
commit c402fb1161
41 changed files with 4299 additions and 0 deletions

View File

@@ -0,0 +1,209 @@
---
title: Dataview Query Examples
category: Reference
date: 2026-02-23
tags: [dataview, queries, obsidian, examples]
---
# Dataview Query Examples
**Plugin:** [Obsidian Dataview](https://github.com/blacksmithgu/obsidian-dataview)
**Your Vault Location:** `C:\Users\admin\Documents\Corey`
---
## 📊 Summary Statistics
### All Files in Vault
```dataview
TABLE file.mtime AS "Modified", file.size AS "Size"
FROM ""
SORT file.mtime DESC
LIMIT 20
```
### Files by Category
```dataview
TABLE rows.file.name
FROM ""
WHERE category
GROUP BY category
```
---
## 🏠 Home Assistant Queries
### Show Home Assistant Notes
```dataview
TABLE status, total_automations AS "Total", active_count AS "Active", unavailable_count AS "Broken"
FROM "Home Assistant"
SORT file.name
```
### Recent HA Updates
```dataview
LIST
FROM "Home Assistant"
WHERE date_generated
SORT date_generated DESC
```
---
## 📁 Projects Dashboard
### Active Projects Only
```dataview
LIST
FROM "Projects"
WHERE contains(file.content, "Status: Active")
SORT file.name
```
### All Projects with Status
```dataview
TABLE status, type, last_updated
FROM "Projects"
WHERE status
SORT status DESC, file.name
```
---
## 📝 Research Summaries
### Recent Summaries
```dataview
TABLE date, source_url
FROM "Summaries"
WHERE date
SORT date DESC
LIMIT 10
```
### Summaries by Tag
```dataview
TABLE date, source_url
FROM #security OR #ai OR #infrastructure
WHERE date
SORT date DESC
```
### By Source Type
```dataview
TABLE date, type, tags
FROM "Summaries"
WHERE type
SORT type, date DESC
```
---
## 🤖 OpenClaw Configuration
### OpenClaw Notes
```dataview
TABLE category, status, date
FROM "OpenClaw"
SORT date DESC
```
---
## 📅 Daily Notes (if you create them)
### Daily Notes Calendar
```dataview
CALENDAR date
FROM "memory"
WHERE date
```
---
## 🔍 Search Examples
### Find Notes Without Tags
```dataview
LIST file.name
FROM ""
WHERE !file.tags
SORT file.name
```
### Recently Modified Files
```dataview
TABLE file.mtime AS "Modified"
FROM ""
WHERE file.mtime > date(today) - dur(7 days)
SORT file.mtime DESC
```
### Notes by Category
```dataview
TABLE category, status, date
FROM ""
WHERE category
SORT category, file.name
```
---
## 🛠️ Custom Queries
### Broken HA Automations (needs attention)
```dataview
LIST
FROM "Home Assistant"
WHERE unavailable_count > 0
```
### Active Configurations
```dataview
TABLE category, date, config_file
FROM ""
WHERE status = "active"
SORT category
```
### Research by Date Range
```dataview
TABLE date, type, source
FROM "Summaries"
WHERE date > date(2026-02-01) AND date < date(2026-03-01)
SORT date DESC
```
---
## 🎯 Quick Reference
| Query Type | Syntax |
|------------|--------|
| **List** | `LIST FROM "folder" WHERE condition` |
| **Table** | `TABLE col1, col2 FROM "folder"` |
| **Sort** | `SORT column ASC/DESC` |
| **Limit** | `LIMIT number` |
| **Where** | `WHERE field = "value"` |
| **Group** | `GROUP BY field` |
| **Tags** | `FROM #tag1 OR #tag2` |
---
## 📝 Adding Frontmatter to New Notes
Use this template:
```yaml
---
title: Your Note Title
category: Category Name
status: active/inactive/completed
date: YYYY-MM-DD
tags: [tag1, tag2, tag3]
---
```
---
*Create your own queries by copying these and modifying!*

View File

@@ -0,0 +1,93 @@
---
title: Discord / OpenClaw Configuration
category: OpenClaw
status: active
date: 2026-02-23
config_file: ~/.openclaw/config/config.json
tags: [openclaw, discord, config, slash-commands]
---
# Discord / OpenClaw Configuration
## Date: 2026-02-23
## Working Config (Slash Commands + Agent Responses)
**File Location:** `~/.openclaw/config/config.json`
### Critical Setup
Both layers required for full functionality:
```json
"channels": {
"discord": {
"enabled": true,
"token": "YOUR_TOKEN",
"groupPolicy": "open",
"guilds": {
"1465924568119251006": {
"users": [
"458667380332036117",
"1465926559134257294"
],
"channels": {
"1466074219829006599": {
"allow": true
}
},
"requireMention": false
}
}
}
}
```
### Why Both Layers?
| Layer | Location | Purpose | Without It |
|-------|----------|---------|------------|
| `users` | Guild level | Slash commands working | `/compact`, `/status` don't register |
| `channels.allow` | Channel level | Agent can respond | Agent stops responding to messages |
### Bug/Design Issue
The `users` whitelist prevents agent responses — it's a bug where:
1. `users` enables slash commands ✅
2. But also breaks message processing ❌
3. `channels.allow` is the workaround to re-enable responses
**Both required** until OpenClaw fixes the bug.
### Channel IDs
| Name | ID | Purpose |
|------|-----|---------|
| #home-assistant | 1466074219829006599 | HA, room-assistant |
| #coding | 1468627455656067074 | Code, git, projects |
| #projects | 1468257895152881796 | Non-coding experiments |
| #alerts | 1473701182076752135 | System alerts |
### User IDs
| User | ID |
|------|-----|
| Corey | 458667380332036117 |
| OpenClaw Bot | 1465926559134257294 |
## Slash Commands
| Command | Purpose |
|---------|---------|
| `/compact` | Compact session context |
| `/status` | Show session status |
## Related OpenClaw Files
- [[Memory System]] — Complete memory architecture documentation
- [[Projects/Memory System/Memory System Architecture]] — Detailed data flow diagrams
- [[Dataview Query Examples]] — Query memory system with Dataview
---
*Updated: 2026-02-23*

91
OpenClaw/MEMORY Index.md Normal file
View File

@@ -0,0 +1,91 @@
# MEMORY.md — Corey's Agent Index
*Lightweight reference table (~1.5k tokens). Drill down to detail files as needed.*
---
## About Corey
- **Person:** See `memory/people/corey.md`
- **Trigger:** "corey", "user", "timezone", "preferences"
- **Quick Ref:** America/Chicago, 70582 LA, °F/MPH, chill vibe
---
## Active Projects (Always Context)
| Project | Status | Detail File | Trigger Words |
|---------|--------|-------------|---------------|
| **Home Assistant** | 🔄 In Progress | `memory/projects/home-assistant.md` | "home assistant", "HA", "mqtt", "sensor" |
| **Mission Control Python** | ✅ Live | `memory/projects/mission-control-python.md` | "dashboard", "mission control", "python", "flask" |
| **Proton Mail Bridge** | ✅ Functional | `memory/projects/proton-mail-bridge.md` | "proton", "email", "imap", "smtp", "mail" |
| **Coding Workflow** | ✅ Active | `memory/projects/coding-workflow.md` | "coding", "git", "repo", "workflow" |
| **Memory System** | 🔄 Restructure | `memory/projects/memory-system.md` | "memory", "database", "backup", "sqlite" |
| **Discord Voice Bot** | ✅ Complete | `memory/projects/discord-voice-bot.md` | "voice bot", "glados", "TTS", "STT" |
## Platform Decisions (Sticky)
| Decision | Status | Date | Notes |
|----------|--------|------|-------|
| **Primary Chat** | ✅ Discord | 2026-02-23 | Staying with Discord (rolled back ID reqs). Zulip/Rocket.Chat experiments cancelled. |
| **Voice Bot** | ✅ GLaDOS | — | Operational in #coding voice channel |
## Active Workflows (Auto-Execute)
| Trigger | Action | Output | Notes |
|---------|--------|--------|-------|
| `/summarize [URL]` | Fetch → Summarize → Save | `Summaries/[Title].md` | Works in ANY channel. Auto-saves to Obsidian. Confirm with file path. |
---
## Quick Reference
### Discord Channels
- **#home-assistant:** 1466074219829006599 (HA, room-assistant)
- **#coding:** 1468627455656067074 (code, git, projects)
- **#projects:** 1468257895152881796 (experiments, non-coding)
- **#alerts:** 1473701182076752135 (system alerts)
### Critical Info
- **HA URL:** http://192.168.0.39:8123
- **MQTT:** 192.168.0.39:1883 (corey/41945549)
- **Phone MAC:** b0:c2:c7:07:28:b5
- **News Brief:** Strict NO F1 spoilers policy
---
## Decisions Log
- **Current Month:** `memory/decisions/2026-02.md`
- **Trigger:** "decided", "decision", "why did we"
---
## Drill-Down Rules
**MUST drill when mentioned:**
- Any active project above → Read full detail file
- "Decisions" or "why" → Read monthly decision log
- Person questions → Read `memory/people/corey.md`
**MAY drill when relevant:**
- Past projects → Check `memory/projects/`
- Daily context → Check `memory/YYYY-MM-DD.md`
- Learnings → Check `.learnings/`
**Hard cap:** Max 5 drill-downs per session start
---
## Integration Points
| System | Location | Use When |
|--------|----------|----------|
| **Daily Notes** | `memory/2026-*.md` | "What happened on [date]?" |
| **SQLite DB** | `~/.openclaw/memory.db` | "What tasks are pending?" (structured query) |
| **Workspace Context** | `workspace-context.md` | Current conversation, in-progress |
| **Supermemory** | Cloud backup | Disaster recovery |
---
*Last Updated: 2026-02-20*
*Version: Hierarchical Index v1.1*
*Next Review: When projects change status*

188
OpenClaw/Memory System.md Normal file
View File

@@ -0,0 +1,188 @@
---
title: OpenClaw Memory System
category: OpenClaw
type: Architecture/Documentation
status: active
date: 2026-02-16
last_updated: 2026-02-23
source_file: memory_system_architecture.md
tags: [openclaw, memory, architecture, system-design, data-flow, sqlite]
---
# OpenClaw Memory System
*Source of truth for how information flows and persists*
**Original File:** `memory_system_architecture.md`
**Created:** Evening of major OpenClaw upgrade (2026-02-16)
---
## Overview
```
┌─────────────────────────────────────────────────────────────────────────────┐
│ INFORMATION FLOW │
└─────────────────────────────────────────────────────────────────────────────┘
User Conversation
┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐
│ ME (Main Agent) │────▶│ Memory Worker │────▶│ SQLite Database │
│ (Real-time) │ │ (Daily 3 AM) │ │ (Structured) │
└─────────────────────┘ └─────────────────────┘ └─────────────────────┘
│ │ │
│ │ │
▼ ▼ ▼
┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐
│ Daily Notes │ │ Query Interface │ │ Stats/Search │
│ (memory/*.md) │◄────│ (On Demand) │◄────│ (SQL/FTS) │
└─────────────────────┘ └─────────────────────┘ └─────────────────────┘
┌─────────────────────┐
│ MEMORY.md │
│ (Curated) │
└─────────────────────┘
┌─────────────────────┐
│ Supermemory.ai │
│ (Cloud Backup) │
└─────────────────────┘
```
---
## Storage Layers (6 Total)
| Layer | Speed | Persistence | Purpose |
|-------|-------|-------------|---------|
| 1. Session RAM | ⚡ Fastest | Minutes-hours | Working conversation context |
| 2. Workspace Context | 📝 Fast | ~24 hours | Session bridge between channels |
| 3. Daily Notes | 📄 Medium | 30-90 days | Raw daily activity |
| 4. MEMORY.md | 🧠 Slow | Permanent | Curated important info |
| 5. SQLite DB | 📊 Query | Permanent | Structured data with FTS |
| 6. Supermemory.ai | 🌐 Cloud | Permanent | Full cloud backup |
---
## Key Components
### 1. Session RAM
- **What:** Current conversation context
- **Writes:** Real-time
- **Survives:** ❌ Crash ❌ Restart
- **Size:** ~100K-250K tokens
- **Risk:** Lost on compaction
### 2. Daily Notes (memory/*.md)
- **What:** Raw daily activity, decisions, errors
- **Writes:** Pre-compaction flush
- **Survives:** ✅ Everything
- **Retention:** 30-90 days
### 3. MEMORY.md
- **What:** Curated long-term memory
- **Writes:** Manual review
- **Survives:** ✅ Everything
- **Retention:** Permanent
### 4. SQLite Database (~/.openclaw/memory.db)
- **What:** Structured tasks, decisions, facts
- **Writes:** Daily 3 AM (Memory Worker cron)
- **Schema:**
```sql
memory_cells: id, scene, cell_type, salience, content, source_file, created_at
scenes: scene, summary, item_count, updated_at
memory_fts: full-text search index
```
- **Survives:** ✅ File-based
- **Retention:** Permanent
### 5. Supermemory.ai
- **What:** Full cloud backup
- **Writes:** Daily 2 AM (Python script)
- **Survives:** ✅ Disk failure
- **Retention:** Cloud dependent
### 6. Workspace Context (workspace-context.md)
- **What:** Current conversation bridge
- **Writes:** Continuous
- **Survives:** ✅ Channel switch
- **Cleared:** Nightly (~11 PM)
---
## Cron Jobs (Memory System)
| Job | Time | Purpose |
|-----|------|---------|
| Supermemory Backup | 2:00 AM | Cloud backup of all memory files |
| Cron Cleanup | 3:00 AM | Remove finished one-shot jobs |
| Memory Worker | 3:04 AM | Extract to SQLite database |
---
## Key Principles
1. **Text > Brain** — Files persist, sessions don't
2. **Daily notes = raw, MEMORY.md = curated** — Filter noise from signal
3. **Worker = automated structuring** — Don't manually organize everything
4. **Hybrid = best of both** — Human-readable + machine-queryable
5. **Multiple backups** — Local + cloud + structured
---
## Access Patterns
### Main Agent Reads:
- `MEMORY.md` — Every session (core identity, prefs)
- `USER.md` — Every session (who Corey is)
- `SOUL.md` — Every session (how to behave)
- `workspace-context.md` — Every session (current state)
- `memory/*.md` — During heartbeats (recent context)
- `SQLite DB` — On demand (structured queries)
### Memory Worker Reads:
- `IDENTITY.md` — Daily 3 AM
- `SOUL.md` — Daily 3 AM
- `HEARTBEAT.md` — Daily 3 AM (instructions)
- `memory/YYYY-MM-DD.md` — Daily 3 AM (content to extract)
- Writes to SQLite DB
---
## Failure Recovery
| Scenario | Survives | Lost | Recovery |
|----------|----------|------|----------|
| Session Crash | Files | Session RAM | Read files, reconstruct |
| Gateway Restart | All files | Session/cron state | Restart, verify jobs |
| Disk Failure | Supermemory | Local files + DB | Restore from cloud |
---
## File Locations
| File | Location |
|------|----------|
| MEMORY.md | `~/.openclaw/workspace/MEMORY.md` |
| Daily Notes | `~/.openclaw/workspace/memory/YYYY-MM-DD.md` |
| SQLite DB | `~/.openclaw/memory.db` |
| Workspace Context | `~/.openclaw/workspace/workspace-context.md` |
| Architecture Doc | `Projects/Memory System/Memory System Architecture.md` (Obsidian) |
---
## Related
- [[Discord Config]] — Discord/OpenClaw configuration
- [[Projects/Daily Notes/YYYY-MM-DD]] — Daily notes structure
- [[Dataview Query Examples]] — Query the SQLite database
---
*This is the source of truth for Corey's OpenClaw memory system.*
*Created: 2026-02-16 | Last Updated: 2026-02-23*

View File

@@ -0,0 +1,10 @@
# OpenClaw Sync - 2026-02-24
## Files Synced
- Tools Reference.md (from TOOLS.md)
- MEMORY Index.md (from MEMORY.md)
## Notes
Last updated: 06:01
---

View File

@@ -0,0 +1,98 @@
# System Overview
## Core Services
| Service | URL | Status | Purpose |
|---------|-----|--------|---------|
| Mission Control (Python) | http://localhost:5050 | ✅ Live | Flask dashboard |
| Mission Control (Next.js) | http://localhost:3000 | ✅ Complete | React dashboard (archived) |
| Home Assistant | http://192.168.0.39:8123 | 🔄 Active | Entity cleanup |
| OpenClaw Gateway | localhost:8787 | ✅ Active | Multi-channel bot |
| Discord Bot | Discord | ✅ Active | Chat + voice |
---
## Pi Infrastructure
| Device | IP | Purpose | Status |
|--------|-----|---------|--------|
| livingroom-pi | 192.168.0.95 | Room-assistant presence | ✅ Working |
| HA Server | 192.168.0.39 | Home Assistant core | ✅ Running |
| VPN Box | — | Downloads (qbit/sonarr/radarr) | ✅ Active |
---
## Automation (Cron Jobs)
| Job | Schedule | Last Status | Purpose |
|-----|----------|-------------|---------|
| Supermemory Backup | 2:00 AM | ✅ | Cloud backup |
| Daily Cron Cleanup | 3:00 AM | ✅ | Job maintenance |
| Memory Worker | 3:00 AM | ✅ | Extract to SQLite |
| News Brief | 8:00 AM | ✅ | Morning news |
| Job Verifier | 9:00 AM | ✅ | Check overnight jobs |
| Shipping Tracker | 6 AM/12 PM/6 PM | ✅ | Package alerts |
---
## Discord Channels
| Channel | ID | Purpose | Model |
|---------|-----|---------|-------|
| #home-assistant | 1466074219829006599 | HA, room-assistant | kimi |
| #coding | 1468627455656067074 | Code, projects | qwen3-coder |
| #projects | 1468257895152881796 | Experiments | kimi |
| #alerts | 1473701182076752135 | System alerts | kimi |
| #news-brief | 1471156195233628394 | Morning news | kimi |
| #calendar | 1474636036905631867 | Scheduling | kimi |
---
## Key Directories
### OpenClaw Workspace
```
~/.openclaw/workspace/
├── memory/ # Memory files + SQLite
│ ├── projects/ # Project detail files
│ ├── people/ # User profiles
│ └── decisions/ # Decision log
├── skills/ # Installed skills
├── tools/ # Custom scripts
└── scripts/ # Automation scripts
```
### Mission Control
```
C:\web\htdocs\
├── mission-control-py/ # Flask dashboard (live)
├── mission-control/ # Next.js dashboard (complete)
└── dashboard/ # Legacy PHP dashboard
```
### Other Important Paths
- **MySQL:** C:\web\mysql\ (MariaDB 10.4.32)
- **Frigate:** P:\frigate\ (NVR with 4 cameras)
- **Nextcloud:** http://aiagents:8081 (removed from startup - thermal issues)
- **HA:** 192.168.0.39:8123
---
## Projects Status Overview
### Active
- Home Assistant — Entity cleanup
- Mission Control Python — Dashboard live on :5050
- Coding Workflow — Git/controls-web
- Memory System — Daily extractions working
### Completed
- Discord Voice Bot — Always available in #coding
- Proton Mail Bridge — Tested and functional
- Mission Control Next.js — Archived
- Supermemory backup — Daily automation
- Room-Assistant — Presence tracking working
---
*Last Updated: 2026-02-22*

196
OpenClaw/Tools Reference.md Normal file
View File

@@ -0,0 +1,196 @@
# TOOLS.md - Local Notes
---
## Credentials Location
All credentials stored in `.credentials/` (gitignored):
- `example-api.txt` — Example API key
---
## [Tool Name]
**Status:** ✅ Working | ⚠️ Issues | ❌ Not configured
**Configuration:**
```
Key details about how this tool is configured
```
**Gotchas:**
- Things that don't work as expected
- Workarounds discovered
**Common Operations:**
```bash
# Example command
tool-name --common-flag
```
---
Skills define *how* tools work. This file is for *your* specifics — the stuff that's unique to your setup.
## What Goes Here
Things like:
- Camera names and locations
- SSH hosts and aliases
- Preferred voices for TTS
- Speaker/room names
- Device nicknames
- Anything environment-specific
- Tool configurations and settings
- Credential locations (not the credentials themselves!)
- Gotchas and workarounds discovered
- Common commands and patterns
- Integration notes
## Examples
```markdown
### Cameras
- living-room → Main area, 180° wide angle
- front-door → Entrance, motion-triggered
### SSH
- home-server → 192.168.1.100, user: admin
### TTS
- Preferred voice: "Nova" (warm, slightly British)
- Default speaker: Kitchen HomePod
```
## Home Assistant
```markdown
### Home Assistant
- URL: http://192.168.0.39:8123
- Token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJmYzg2NzQwNGNlMzY0NmM5YjA0MTQ4YWFjYjY3OGM4OSIsImlhdCI6MTc3MTE3MzcwNSwiZXhwIjoyMDg2NTMzNzA1fQ.IdlfMvFeiEwv2GSH7hRnG_Au48KRYbfVF0Fa7g5eMpc
```
## Why Separate?
Skills are shared. Your setup is yours. Keeping them apart means you can update skills without losing your notes, and share skills without leaking your infrastructure.
## Workspace Organization
- **Root** (`~/.openclaw/workspace/`) → Core config files and documentation
- **`scripts/`** → One-off helper scripts (PowerShell/Shell)
- **`temp/`** → Temporary files, downloads, transcripts
---
## Obsidian / NotesMD
**Status:** ✅ Configured
**CLI Location:** `C:\tools\notesmd-cli.exe` (or in PATH as `notesmd-cli.exe`)
**Default Vault:** `C:\Users\admin\Documents\Corey` (already set via `notesmd-cli set-default`)
**Common Commands:**
```powershell
# Check default vault
notesmd-cli print-default --path-only
# Search notes
notesmd-cli search "query"
# Search content inside notes
notesmd-cli search-content "query"
# Create new note
notesmd-cli create "Folder/New note" --content "..." --open
# Move/rename (updates wikilinks)
notesmd-cli move "old/path" "new/path"
```
**Gotchas:**
- Vault path uses regular Windows paths, NOT WSL paths
- Default vault must be set before commands work without `--vault` flag
- Notes survive session chops (written to disk immediately)
---
## Discord / OpenClaw Config
**Status:** ✅ Working
**File:** `~/.openclaw/config/config.json`
**Working Channel Permissions Setup (for Slash Commands + Agent Responses):**
```json
"channels": {
"discord": {
"enabled": true,
"token": "YOUR_TOKEN",
"groupPolicy": "open",
"guilds": {
"1465924568119251006": {
"users": [
"458667380332036117",
"1465926559134257294"
],
"channels": {
"1466074219829006599": { "allow": true },
"1468627455656067074": { "allow": true },
"1468257895152881796": { "allow": true },
"1471202415385509981": { "allow": true }
},
"requireMention": false
}
}
}
}
```
**Critical:** Both layers needed:
- `users` at guild level → enables slash commands
- `channels.allow: true` at channel level → lets agent respond
**Without `users`:** Slash commands don't work
**Without `channels.allow`:** Agent doesn't respond (even with `users` set)
**Bug/Design Issue:** Dual-whitelist is redundant but required. The `users` filter blocks agent responses when enabled.
### Discord Channels Reference
| Channel | ID | Purpose | Agent Active |
|---------|-----|---------|--------------|
| #home-assistant | 1466074219829006599 | HA, room-assistant | ✅ |
| #coding | 1468627455656067074 | Code, git, projects | ✅ |
| #projects | 1468257895152881796 | Experiments, non-coding | ✅ |
| #summaries | 1471202415385509981 | URL summaries, YouTube | ✅ |
| #alerts | 1473701182076752135 | System alerts | ✅ |
**Note:** Channel names change sometimes... IDs are forever 😂
---
## Docker Services
**Location:** `~/.openclaw/workspace/docker/`
**Services:**
| Service | Size | Purpose | Config |
|---------|------|---------|--------|
| **frigate** | 219 MB | NVR/AI camera detection | `docker-compose.yml`, `config.yml` |
| **nextcloud** | 1.1 GB | Self-hosted file sync | `docker-compose.yml` |
| **discord-voice-bot** | <1 MB | GLaDOS voice bot | `docker-compose.yml` |
**Note:** Frigate media files moved outside workspace. Only config and AI model remain.
**To start/stop:**
```bash
cd ~/.openclaw/workspace/docker/[service]
docker-compose up -d # Start
docker-compose down # Stop
docker-compose logs -f # View logs
```
---
Add whatever helps you do your job. This is your cheat sheet.