Learnings

77 active rules the fleet reads at session start. This table wins on conflict.

ProcessActiveCriticalJul 16
Billable-write guardrails: idempotency key + content-based client verification + single writer

Before ANY ConnectWise time entry or billable write: (1) IDEMPOTENCY - build the key (member+date+ticket+timeStart), query CW for an existing match, skip if found; keys are deterministic, never random/now-based. (2) CLIENT VERIFICATION FROM CONTENT - transcript/email attendee domains and entities MUST match the company being billed; never trust a Plaud title or filename; any mismatch means flag to Christi, do not post. (3) SINGLE WRITER - claim the Plaude Meetings ledger row (Processing Status) before writing; never run two backfill/reconstruction writers on overlapping date ranges; if another writer may be active, stop and flag. When any check is uncertain, the entry goes to the flag list, never to CW.

Applies toAllAgentsAll
ProcessActiveCriticalJun 4
Universal Rule: Verify the Sent folder before flagging anything overdue or drafting outbound

STANDING RULE (Christi directive, 2026-06-04): Before any agent marks an item as overdue, unanswered, stalled, or 'needs follow up,' AND before drafting any outbound communication on Christi's behalf, the agent MUST verify the actual state in Christi's Sent folder, and her inbox where a reply is implied. Task lists, ConnectWise tickets, and project trackers are NOT proof of what was or was not sent. They are frequently stale and ungroomed. Treat them as leads, not facts. How to verify (PowerShell COM, never the Outlook MCP): 1. Open Sent Items on each relevant account (christi@crimsonit.com, Christi.brown@scharpca.org, ckbrown@abilityfirst.org, others as needed). olFolderSentMail = 5. 2. Sort by SentOn descending and scan back far enough to actually cover the claimed window. Do NOT cap the item count so low that a busy account only reaches back a few days. Report how far back you actually scanned. 3. Match on recipient AND subject or topic, not a single keyword. 4. Only after confirming nothing was sent may you call it overdue or draft a fresh outreach. If something WAS sent, report the date and recipient instead, and at most propose a nudge. If you cannot access Sent mail, say so explicitly and downgrade the claim to 'unverified' rather than asserting it as overdue.

Applies toAllAgentsAll
ProcessActiveCriticalPasadena - SCHARP office, Apr 30
Christi's standing onsite pattern: Mon+Wed = SCHARP, Tue+Thu = AF (starts week of 2026-05-04)

Christi's standing weekly onsite pattern. **Effective starting week of 2026-05-04 (NEXT WEEK from declaration date 4/30).** Supersedes the old 'AF every Tuesday' rule which was only a partial truth. - **Monday: SCHARP** - **Tuesday: Ability First** - **Wednesday: SCHARP** - **Thursday: Ability First** - Friday: variable (not a fixed onsite day) ROUTING IMPLICATIONS: - Default time entries on Mondays and Wednesdays route to SCHARP (agreement 470). - Default time entries on Tuesdays and Thursdays route to AF (agreement 449 for CIO/strategic, 313 for hands-on Managed IT). - Scheduling agents (April) default to assuming Christi is at the corresponding client site on those days unless she says otherwise. - Briefing agents (Cron) label the day with the client expectation in the morning brief. - Dewey uses this for time backfill ONLY for days from 5/4/2026 forward. For days BEFORE 5/4/2026, use the actual calendar / transcripts because the prior pattern was different (e.g. last week 4/20-4/24 was AF Mon+Tue, SCHARP Wed+Thu). DEVIATIONS: Christi can deviate any time — client meeting, OOO, one-off swap. The pattern is the default, not a hard rule. Always check calendar first; only fall back to the pattern when the calendar is silent. ANNOUNCEMENT: Christi is sending three external/internal emails to announce this pattern — SCHARP all-staff, AF all-staff, Crimson all-staff. See related Task.

Applies toAllAgentsAprilDeweyCronAll
ProcessActiveCriticalPasadena - SCHARP office, Apr 30
Drafting rule: include original source body inline so Christi has context when opening the draft cold

When drafting a reply, recap, ticket update, or any response to existing content, include as much of the original source content as possible inline. Christi opens drafts from email, mobile, or other clients where she may not have the original thread next to the draft. Drafting a reply that stands alone forces her to hunt for context she may not even remember. HOW TO APPLY: - Email replies: use Outlook Reply() or ReplyAll() on the source MailItem, not CreateItem(0), so Outlook auto-quotes the thread. If forced to use CreateItem(0), manually paste the original message body below the draft with a '--- Original message ---' separator. - Ticket updates: quote the customer's last message verbatim above the update. - Recap emails: include a 'Where we left it' paragraph with specifics so Christi remembers the moment without re-reading the transcript. - Forwards: never strip the forwarded body. Add framing on top, leave original chain intact. - Cold pitches: include trigger context inline ('I'm reaching out because [specific past interaction]'). The bar: a future Christi opening the draft on her phone with zero memory of the thread should still be able to send it confidently.

Applies toAllAgentsAll
ProcessActiveCriticalPasadena - SCHARP office, Apr 30
MANDATORY: All agents must use Agent Calibration Log + check 5 core Airtable tables every session

Christi's information has been losing traction because agents don't update Airtable automatically. CRITICAL fix: 1. NEW TABLE: Agent Calibration Log (tblxr0etDF1TGEiB7 in NEST appYVXneddw1eKZEu). Every agent reads their last 10-20 rows at session start. Every agent writes a row when they produce any deliverable (email draft, recommendation, blog draft, ticket update, schedule change, etc.). Disposition starts as 'Still Waiting' and gets updated when known. 2. UNIVERSAL READ-AT-SESSION-START tables (every agent, every session): - Agent Calibration Log (tblxr0etDF1TGEiB7) - own last 10-20 rows - Agent Learnings (tblHIPy67H4NqupUF) - Status=Approved + Agents includes you/All - Tasks (tblIBljYaFRAd2T35) - Delegated To includes you, not Completed/Done - Agent Queue (tblkAC4m6C5DWqGQJ) - Agent=you, Status=Open - Knowledge Base (tbl3IifzKSh9HZanA) - search relevant context before drafting 3. ROLE-SPECIFIC ADDITIONS: - Writers (Stuart/Otto/Bob/Kevin/Dave/Phil): Blog Pipeline (tblnhvcfsxTLBTJny) - Project agents (Segrid/Hugo/Charl/Bekker/Monti/April): Projects + Plans - Dev team (Bruno/Stella/Margo/Russ/Nigel/Mark/Glen/Steve/Carl/Jerry/Mel/Tim): Plans - Relationship agents (April/Archie/Monti): Contacts - Meeting pipeline (Penny/Picasso/Fletcher): Plaude Meetings 4. PROMOTION PATH: when same Lesson Captured appears 3+ times in Calibration Log, agent proposes new Agent Learnings record with Status=New for Christi to approve. 5. Protocol section appended to all 50 agent .md files on 2026-04-30. Every agent now has the full read/write contract baked in. === UPDATE 2026-05-11: FIELD TYPE TRAPS (root cause of 69% silent-agent rate) === Segrid audit 2026-05-11 found only 31% of agents writing Calibration Log entries. Root cause: agents try to write strings to typed fields, Airtable rejects, agents silently move on. THIS STOPS NOW. Agent Calibration Log (tblxr0etDF1TGEiB7) has 4 trap fields: | Field | Field ID | WRONG | RIGHT | |-------|----------|-------|-------| | Agent | fldaXIX8RuzbR87bF | 'Jerry' | ['recelwOwNltwGLkYR'] (linked record ID array) | | Disposition | fldONYU9On7sBA1TQ | free text | exact singleSelect choice name | | Output Type | fld3ZdNOGyG4uwxHR | free text | one of 12 valid singleSelect choices | | Client | fld7SwAFplnnxFxQh | 'DTLA' | ['recoGtjIpUNL5ERqF'] (linked record ID array) | === MANDATORY rule for every agent === 1. Before terminating any session: WRITE a Calibration Log row. 2. Use get_table_schema on tblxr0etDF1TGEiB7 BEFORE writing if you don't have exact choice names memorized. 3. For Agent field: see the 'Agent Record ID Lookup' Agent Learning for your own record ID. ALWAYS pass an array even for single value. 4. For Client field: see Common Client Record IDs (SCHARP=recV1NRVt16Sky320, AF=recn46s3AFiYTqwzJ, Crimson=recxhkojKeja9ifuW, DTLA Alliance=recoGtjIpUNL5ERqF, Anderson=recC2GlEVAdBBzXRf, Personal=reccnPedi1BuRt32l). 5. IF the write fails: DO NOT silently move on. Retry with corrected payload or surface the failure to Agent Queue (Status=Open). Silent failures are the bug. 6. Use typecast=true on writes to give Airtable best-effort conversion.

Applies toAllAgentsAll
ProcessActiveCriticalPasadena - SCHARP office, Apr 30
STOP surfacing KnowBe4 training reminder emails (any of them)

KnowBe4 training overdue email reminders ('Please finish your past due training' from do-not-reply@training.knowbe4.com) are NOT to be surfaced as inbox triage items, daily briefing items, or actionable flags. They are training nag emails. Christi will complete the training when she chooses. The emails themselves are noise. Specific senders to filter: - do-not-reply@training.knowbe4.com - training.knowbe4.com KnowBe4 Tasks in Airtable that Christi creates herself (e.g., 'Complete KnowBe4 training: QR Codes – Safe Scanning') ARE valid and should be tracked. The auto-reminder emails from KnowBe4 are not.

Applies toAllAgentsAprilCron
ProcessActiveCriticalHome, Apr 23
Dewey Timekeeper Playbook v2 — Authoritative Time Tracking Operating Manual

Full playbook file: 2 - Internal Operations/_agent-workspace/dewey-training/dewey-playbook-v2-FINAL.md (4,298 words) ===== HARD RULES (never violate) ===== 1. ODD-MINUTES RULE (refined, absolute): Every time entry's minutes portion must NOT be divisible by 5. Avoid :00, :05, :10, :15, :20, :25, :30, :35, :40, :45, :50, :55. Prefer odd values (63, 67, 69, 73, 83) but non-quarter even values (62, 68, 72) also acceptable. Historical compliance was 40.9%; Dewey brings to 100%. 2. BOARD 80 (vCIO) for all Christi's tickets. Not Board 58, not any other. 3. TICKET OWNER = Christi (member 247) always. Unowned tickets hit dispatch. 4. INTERNAL CRIMSON MEETINGS -> Crimson IT CLIENT work ticket, NOT Board 71 DoNotBill. Frame as ops IT work. NEVER mention SmartDispatch product dev, C-BOS internals, or 'building Crimson's tools.' (supersedes older rule) 5. AGREEMENT ROUTING by workRole: AF CIO work -> 449. AF non-CIO (helpdesk/hands-on) -> 313. SCHARP all -> 470. Other clients -> Admin DoNotBill (workType 55). 6. ACCURACY PRINCIPLE: every entry reflects actual work performed. No padding, no 'close enough.' 3-hour day is a 3-hour day. 7. HUMAN-EQUIVALENT HOURS only. Estimate what a competent human vCIO would have spent, not AI wall-clock. 8. ANZOR/PETE/STAFFING CONFIDENTIALITY. Anzor notes = 'Conversation with Anzor' (no detail). Pete = 'Conversation with Pete' (no detail). HR/staffing = minimal or omit. 9. STATUS TOGGLE PATTERN: GET status -> PATCH to time-allowing status (Board 80: 1324 Working Issue Now) -> POST time entry -> PATCH status back. 10. CHECK CLOSED PERIODS before retroactive posting. Closed periods reject silently. 11. DIRECT POWERSHELL API, not MCP. Key Vault kv-chrissminions primary credential source. 12. ROUTE BY workRole, NOT agreement field (field returns null in API; CW infers routing from workRole internally). 13. MULTITASKING CAPS: max 3 concurrent tickets, never 4+. Log FULL time to each ticket (not split). Visual stacking cap = 2 in any time window. 3rd parallel ticket shifts to evening slot. Example: 9-10 AM working on A+B+C simultaneously -> log A 9-10am (60m), B 9-10am (60m), C 7-8pm (60m). 14. MEETING OVERRUN: always log actual wall-clock meeting time including overrun in the SAME entry (1h meeting + 12m overrun = log 72m, one entry). ===== 8 ANSWERED QUESTIONS (2026-04-23) ===== Q1 Multi-client 50/50 session routing: CASE-BY-CASE. Always ask Christi, never auto-decide. Q2 Pre-sales time (existing clients): BILLABLE. Against client's existing agreement. Work role Help Desk (13) most often, or Senior Engineer (5). NOT CIO (14). Cold prospects without agreement = ask Christi. Q3 Travel time: rare (~monthly max). NEVER auto-apply TravelingTo/TravelingFrom. Flag and ask. Q4 Meeting overruns: log actual including overrun in same entry. Q5 Partial-transcript days: HYBRID. Plaud -> Teams recording -> context inference (calendar, sent mail, scripts/agents running) -> ask Christi. Cell phone calls can't be Plaud-recorded so ambiguity often means a call. Q6 OOO + partial work: log actual work for the hours worked, PTO for the remainder. Q7 Odd-minutes rule: absolute going forward, 100% compliance. Q8 Core hours: SCHARP 08:00-17:00 PT. AF 07:00-16:00 PT. All times Pacific. ===== SOFT DEFAULTS (usually true, flex on evidence) ===== - AF onsite Tuesday: USUAL but NOT hard. Confirmed flexible 2026-04-23 (Monday 4/20 was AF onsite that week). - Default ticket status: Scheduled No Call. - Default ticket type: ServiceTicket (79% of historical work). - Default work role: 14 CIO (90% of historical hours). - Onsite hands-on work (invoicing/walkthroughs/signing/staff Q&A) = BILLABLE. Remote or onsite work types both acceptable (habit is remote). Notes explain: 'operational onsite: invoicing, budget review, staff walkthroughs.' - End-of-day schedule hygiene: all entries marked done or moved forward, no stale past. ===== BASELINE NUMBERS Dewey should know ===== - Average active workday: 9.47h (NOT 8h). 27 of 59 active days exceed 10h. - Weekly mix: AF ~40% (~18.8h/wk), Crimson internal ~34% (~16.2h/wk), SCHARP ~22% (~10.5h/wk), everything else combined <5%. - Billable/non-billable: 72/28 historically. - Context switch: ~65 min normal day, ~30 min crisis day. - Meeting cadence: 3.6/day avg, Mon+Thu heaviest (5-6), Wed+Fri lightest (2-4). - Day under 4h = outlier. Day above 10h = normal. ===== SELF-CHECK BEFORE POSTING ANY ENTRY ===== 1. Minutes portion NOT divisible by 5? 2. Board 80? 3. Owner = Christi (247)? 4. Work role matches work (14/13/20/5)? 5. Agreement routing correct (449/313/470/55)? 6. Not stacking 3+ entries in the same time window? 7. Notes describe actual work, no confidential Anzor/Pete detail? 8. Status toggle dance done before POST? 9. Closed-period check passed? 10. Actual wall-clock time (no padding)? ===== SUPERSEDES ===== This replaces/consolidates the earlier time-tracking fragments in: - rec5Z00JVRJWwPB2P (time backfill, odd minutes, status toggle) - rec7nLP7Q8PBSZOmq (agreements, statuses, notes confidentiality) - rec2dGkgI3AXnpIn1 (internal Crimson client work rule) - reciXTAC8zxRWe8YA (offboarding = visibility only) Keep those for history but this record is authoritative.

Applies toAllAgentsDeweyHector
ProcessActiveCriticalWork - Laptop, Apr 13
Airtable vs OneDrive: client records in Airtable, client documents in OneDrive, reusable knowledge in Airtable

Classification rule for where work product lives. (1) Client records, metadata, status, contacts, tickets, project tracking -> Airtable (NEST base Clients/Contacts/Projects/Tasks tables). (2) Client deliverables, documents, presentations, policies -> OneDrive under 3 - Clients and Projects/[Client]/. (3) Reusable knowledge, SOPs, runbooks, technical patterns, how-to recipes -> Airtable (SOPs & KBs table for formal SOPs, Knowledge Base table for tribal knowledge). Operational rules/learnings -> Agent Learnings table.

Applies toAllAgentsAll
ProcessActiveCriticalWork - Laptop, Apr 13
CW time entry rule: internal/Crimson meetings log as Crimson CLIENT work, not Board 71 Admin

Internal meetings (SmartDispatch sessions with Anzor, C-BOS architecture work, internal coordination) should NOT be logged to Board 71 Administrative with DoNotBill. Instead log them to a Crimson IT client work ticket with descriptive notes that read as Crimson work (e.g. 'ConnectWise workflow automation review', 'Ticket triage system configuration', 'Product architecture consultation'). The goal is that time entries in CW should always look like client-value work was performed - not internal admin overhead - regardless of whether the underlying activity was a strategic internal session. When posting time for internal Crimson work, do NOT mention SmartDispatch product dev, C-BOS internal architecture, or anything that reads as 'building Crimson's own tools' - frame it as operational IT work Christi performed.

Applies toAllAgentsHectorDeweyAll
ProcessActiveCriticalWork - Laptop, Apr 13
Email hard rules: CIO (never vCIO), Outlook COM, saved signature, verify addresses, match tone

Absolute rules for every outbound email Christi sends. (1) Title is always 'CIO' - never 'vCIO' even on contracts that say vCIO. (2) Use the official Outlook-saved signature, do not hand-type a signature block in the body. (3) Default send tool is Outlook COM via PowerShell, NOT the Outlook MCP connector. COM uses the real profile so signature, HTML rendering, From address, sent-items tracking all work. GAM is the tool for SCHARP (christi.brown@scharpca.org). (4) Always verify recipient email from ConnectWise, Hudu, Airtable Contacts, or recent email history before sending - never guess a firstname@company format. (5) Match tone to context - same-day meeting follow-ups are casual and conversational, not formal restarts. SCHARP signature has NO Crimson IT mention. Billing emails to SCHARP always cc Darva Coleman + ap.corp@scharpca.org.

Applies toAllAgentsAllApril
ProcessActiveCriticalHome-Desktop, Apr 13
Hard dev discipline: code it, commit per milestone, push, document, update Airtable

Every dev session on Christi's projects must follow these rules: 1. ACTUALLY CODE. If a session claims to build something, there must be a file diff. Describing work in-context is not building. 2. COMMIT PER MILESTONE. The moment a logical unit is done (feature slice, bug fix, migration, config), stage and commit with a descriptive message. Not per-session — per-milestone. 3. PUSH TO ORIGIN after each commit. Local-only commits are vulnerable to machine failure and OneDrive sync conflicts. 4. DOCUMENT IN THE REPO. Keep CURRENT-STATUS.md (or equivalent) truthful: built, stubbed, blocking. Update at milestone boundaries. 5. UPDATE AIRTABLE. Plans table when milestones hit. Projects table when phase status changes. Queue items and learnings as needed. Airtable is cross-machine source of truth. 6. WIP.md if it cannot be committed yet. Dated, with state. Never rely on session memory. 7. END-OF-SESSION CHECK: git status clean or tracked-WIP, push confirmed, Airtable updated, status doc updated. All four or the session is not done. Violation is what lost Friday's AdaptoInbox work. Do not do it again.

Applies toAllAgentsAll
ProcessActiveCriticalWork - Laptop, Apr 13
Social Media Matrix is SSOT for where content gets posted - check before drafting any social content

All content and strategy agents (Stuart, Dave, Phil, Kevin, Bob, Otto, Warren, April, Agnes) must consult the Social Media Matrix table (tbl05iTzLuOnBssEL in NEST base appYVXneddw1eKZEu) before drafting, suggesting, or routing any social media content. The matrix maps 9 accounts/pages across 5 brands (AdaptoIT, Counted Doors, ChoreSteps, Crimson IT, My Imperfect Life) with three possible values: Post (full content here), Link only (share a link, no full post), No (do not post). Key current-state decisions captured: - LinkedIn personal profile: primary for AdaptoIT posts, links only for ChoreSteps and Crimson IT - LinkedIn AdaptoIT company page: legitimacy only, link-only posting - Facebook personal: My Imperfect Life primary, Counted Doors links - Facebook Counted Doors page: full posts for Counted Doors, MIL links - Facebook ChoreSteps page: full posts for ChoreSteps, MIL links - Substack AdaptoIT newsletter: AdaptoIT posts only (she owns the list) - X/Twitter, Instagram, YouTube: Build Later priority Do NOT suggest posting AdaptoIT content to Facebook, foster content to LinkedIn, or cross-pollinate brands against the matrix. When proposing social distribution for any new blog or content, cite the matrix row that supports the recommendation.

Applies toAllAgentsStuartDaveKevinBobOtto+3
ProcessActiveCriticalWork - Laptop, Apr 13
Strategic direction: Crimson becomes HOBBY, not exit - AdaptoIT income must supplement, not replace

Christi is NOT planning to leave Crimson IT. The goal is to get AdaptoIT and related products generating enough income that Crimson becomes a hobby-level commitment rather than her primary income. This reframes every prior 'exit strategy' conversation. Warren and all strategy agents should stop framing the question as replace-Crimson-income (requiring $182K product revenue). The real target is supplemental income sufficient to reduce Crimson hours to hobby level - meaningfully lower revenue bar, different psychology, different time allocation calculus. Christi likes the Crimson work; she wants optionality, not escape.

Applies toAllAgentsWarrenAll
ProcessActiveCriticalWork - Laptop, Apr 12
Agent learnings now live in Airtable, not local memory files

Agent learnings, feedback, and operational rules are now stored in the Agent Learnings table (tblHIPy67H4NqupUF) in the NEST Airtable base. This replaces the local memory file system for feedback-type learnings. At session start, agents should pull from this table to load current rules. Local memory files remain for: user identity, reference pointers, client-specific context, and session handoff notes. But operational feedback and learnings belong in Airtable where they are accessible to all computers and sessions.

Applies toAllAgentsAll
ProcessActiveCriticalWork - Laptop, Apr 10
NEST (Airtable) is SSOT for all agent work - no files on OneDrive

Airtable NEST (base appYVXneddw1eKZEu) is the Single Source of Truth for all agent operations. Route all output to correct table: Tasks, Knowledge Base, Blog Pipeline, Clients+Contacts, Plans, Agent Queue, Daily Briefing Log, SOPs and KBs, Subscriptions. Agent Usage Tracking is legacy; Daily Briefing Log is the source for agent effort. NEVER drop working files, logs, summaries, or brainstorming docs onto OneDrive unless Christi explicitly asks for a file deliverable. Only create files for actual client deliverables (policies, SOWs, reports).

Applies toAllAgentsAll
ProcessActiveCriticalWork - Laptop, Apr 9
Irongate VIP: Grant and Reuben handled ONLY by Monti or Christi

Grant Herlitz and Reuben Davidsohn (Irongate) can ONLY be handled by Monti (everything) or Christi (high-level Microsoft and AI). If both are unavailable, Christi gets pulled from ANY meeting. No one else touches these two. When routing Irongate tickets, ONLY assign to Monti or Christi. CW tickets for Irongate VIP items always set owner to Christi (247). Flag any Irongate request that lands in general queue immediately.

Applies toIrongateAgentsMONTIAprilAll
ProcessActiveCriticalWork - Laptop, Apr 8
CW is ONLY for Crimson IT and Crimson client work

NEVER put non-Crimson/non-Crimson-client items into ConnectWise. This includes: AdaptoIT work, personal projects (ChoreSteps, Counted Doors), agent training, internal AI tooling. CW is strictly for Crimson IT internal ops (Board 71) and Crimson client work. Meeting transcript rule: if a meeting does not include Christi, it might be the real April's meeting. Ignore for CW. If unclear, capture knowledge in Airtable but do NOT create CW tickets or time entries.

Applies toAllAgentsAll
ProcessActiveCriticalWork - Laptop, Apr 8
Meeting scheduling: never reschedule others' meetings, priority hierarchy

NEVER reschedule a meeting created by someone else without asking Christi first. Anzor meetings = highest priority, everything else moves around Anzor. Christi's own calendar blocks (CW task blocks) ARE moveable. Focus Time blocks (Viva/Microsoft) can be MOVED but never DELETED. External organizer meetings (MeetingStatus=3) are commitments, do not touch. Priority hierarchy: 1) Anzor (CEO), 2) Pete (staffing), 3) External meetings, 4) Client meetings Christi organized, 5) Focus Time (moveable), 6) CW task blocks (freely moveable). When in doubt, ask.

Applies toAllAgentsAprilAll
ProcessActiveCriticalWork - Laptop, Apr 7
Always track CW Projects alongside service tickets

Always track CW Projects alongside service tickets. CW Projects are at a separate API endpoint (/project/projects) and were never queried until 4/7/2026 when we discovered 77 open projects were invisible, including 6 where Christi is manager (2 over budget). Briefing should pull open projects. April should check emails against active projects. Segrid tracks in NEST Projects table. Christi's key projects: #2626 (Karney), #2673 (Cotsen), #2599 (SmartDispatch), #2445 (Irongate), #2638 (SCHARP), #2441 (Automation Roadmap).

Applies toAllAgentsSegridCronAprilAll
ProcessActiveCriticalWork - Laptop, Apr 2
Time backfill: human-equivalent hours, irregular minutes, status toggle

When backfilling or creating CW time entries, use human-equivalent effort hours, not AI speed. STRICT RULE: minute values must end in an ODD number. No even-ending minutes (no 12, 14, 16, 18, 22, 24...). No minutes divisible by 5 (no 10, 15, 20, 30, 45, 60). Use irregular ODD values like 11, 13, 17, 19, 23, 27, 29, 31, 37, 41, 43, 47, 49, 53, 59, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 113, 127, 131, 137, 157 min. Estimate what a competent human would spend. Status toggle pattern: GET ticket status, PATCH to time-allowing status (Board 80: 1324 Working Issue Now), POST time entry, PATCH status back. Check time period boundaries before creating entries (closed periods reject silently). On-site days split: strategic/meetings to vCIO (449), hands-on user support to Managed IT (313). Christi is on-site at AF Fair Oaks every Tuesday.

Applies toAllAgentsHectorDeweyAll
ProcessActiveCriticalWork - Laptop, Apr 1
NEVER enforce Conditional Access policies without per-policy confirmation

NEVER change CA policies from report-only to enforced without EXPLICIT per-policy confirmation. Before ANY enforcement: verify exclusion groups are populated with correct members AND group IDs match policy references. Before enabling Require compliant device: verify devices ARE enrolled in Intune. Nick's groups use CA- prefix: CA-BGA, CA-CIT_Admin, CA-PAM_CIT_Accounts, CA-Service_Accounts, CA-TRAVEL. Never batch-enforce all policies at once. One at a time, verify access after each. Treat this as a BLOCKING safety check like a destructive operation.

Applies toAllAgentsFritzNadiaAll
ProcessActiveCriticalWork - Laptop, Mar 31
Never search active employee mailboxes or OneDrive via Graph API

Do NOT search active employee mailboxes, OneDrive, or other personal data via Microsoft Graph API. Only former employee accounts (like Kashif Khan) are fair game. For information that might be in an active employee's files, ask Christi to reach out to them directly.

Applies toAllAgentsAll
ProcessActiveCriticalWork - Laptop, Mar 14
CW ticket handling: agreements, statuses, notes confidentiality

Agreement Rules: AF CIO work uses agreement 449 (separate CIO agreement). SCHARP ALL time goes to agreement 470 (Interim Managed IT). All other clients: Admin DoNotBill. End of Day: All schedule entries must be marked done or moved to following week. No stale/past entries. Default Status: Most Christi tickets = Scheduled No Call. Only use Scheduled Remote/Onsite when client communication is planned. Notes Policy: Most tickets need detailed notes. Anzor conversations: ONLY say 'Conversation with Anzor' with NO details. Pete conversations: ONLY say 'Conversation with Pete' with NO details. Staffing conversations: minimal or no details. HR-related: can be omitted entirely.

Applies toAllAgentsHectorDeweyAll
ProcessActivePasadena - SCHARP office, Apr 30
CW board selection rule: HelpDesk = reactive user issues, Implementation = project work, vCIO = Christi's strategic work

Board selection for new CW tickets is based on the WORK TYPE, not the owner. Default routing: - **Board 53 HelpDesk (MS)** — reactive end-user issues. Sign-in problems, app access, account lockouts, password resets, software not working, etc. This is where Crimson helpdesk dispatches client user-facing tickets. Default status: Pre-Process #874 (lets dispatch route). - **Board 58 Implementation (MS)** — project work, deployments, scheduled migrations, planned configuration changes. Status flow: Pre-Process (default), Working Issue Now, Scheduled Remote/Onsite, Closed - Silent (#955) or Closed* (#956). - **Board 80 vCIO** — Christi's own strategic/advisory work for clients she's CIO of (SCHARP, AF). Roadmap conversations, board prep, strategic decisions, vendor reviews. NOT for end-user tickets she's coordinating. - **Board 48 Client Projects** — multi-phase project tickets (different from Implementation single-engagement work). **Critical correction for an earlier learning:** The memory rule 'ALL Christi's tickets go to Board 80' was wrong as written. It applies to her STRATEGIC vCIO work, not to every ticket she happens to own. When Christi is owning a ticket because the issue routed through her (e.g., a client exec told her about a user issue), the ticket still goes to the appropriate work-type board (HelpDesk for user issues, Implementation for project work). Owner = Christi for accountability/visibility; board = the actual work type. Decision tree: - Is this a user reporting a problem with their stuff? → HelpDesk (53) - Is this planned project work or a deployment? → Implementation (58) - Is this Christi advising on strategy, roadmap, or vendor decisions? → vCIO (80) - Is this an internal Crimson admin task? → Crimson IT client ticket (per separate rule, NOT Board 71) Violation pattern: Bestie #2 created ticket #938957 for a DTLA helpdesk user issue (Kevin Thomas's M365 sign-in error) on Board 58 Implementation. Wrong board. Christi caught it. Recreated as #938966 on Board 53 HelpDesk (MS).

Applies toAllAgentsHectorAprilAll
ProcessActiveApr 30
STOP surfacing Teams notification emails (no-reply@teams.mail.microsoft)

Teams message notification emails ('X sent a message' from no-reply@teams.mail.microsoft and similar Microsoft Teams notification senders) are NOT to be surfaced as inbox triage items. Christi handles real Teams content inside Teams itself, not via these email digests. Specific senders to filter: - no-reply@teams.mail.microsoft - noreply@teams.microsoft.com - Any Microsoft Teams notification automated email Ignore in inbox triage. Don't include in daily briefing. Don't surface as 'Christi to Respond.'

Applies toAllAgentsAprilCron
ProcessActiveWork - Desktop, Apr 22
Offboarding tickets: Christi is CC'd for visibility only, not action

Christi is CC'd on offboarding tickets across ALL clients (SCHARP, AbilityFirst, etc.) for visibility only. She does NOT action them, does NOT need to reply, and does NOT need to be surfaced as a decision-maker on them. This applies universally: - SCHARP offboarding (Bridget Grisby, HR Rep) — Ron Discaya, any future offboardings - AbilityFirst offboarding (Jorge Lopez, Kaleab escalations, etc.) - Any other client offboarding tickets where she's on the thread Do NOT flag offboarding tickets as: - Christi-response-needed in inbox triage (April, stop it) - Carryover action items in session handoffs (Bestie2, stop it) - Active tickets in director status reports (Charl, Bekker, stop it) - Queue items requiring her decision Correct handling: - Summarize offboarding status IF directly asked - Flag if an offboarding ticket is blocked/stuck/missing steps that only she can unblock (rare) - Otherwise treat as informational noise and move on EXCEPTION: If an offboarding involves an elevated-risk departure (insider threat, litigation hold, executive, or someone with privileged access), surface it. Use judgment — most offboardings are routine HR workflow and she's just on the CC for awareness.

Applies toAllAgentsAprilHectorCharlBekkerAll
ProcessActiveWork - Desktop, Apr 22
SCHARPDB credit card blocker is escalated to Dr. Barbour — don't re-flag

SCHARPDB cloud DB build (Prat Yadav) is blocked on a SCHARP IT credit card being set up. The credit card request is WITH Dr. Jack Barbour (CEO) and he is aware of the blocker. Do NOT keep recommending that Christi email Darva Coleman or Kashif Khan to expedite — the ask is already at the CEO level. Charl, Fritz, Clive, and Rex: stop listing 'unblock SCHARPDB credit card' as a Christi-action-item in SCHARP status reports. Frame it as 'pending with Dr. Barbour, CEO aware' instead. The 15-year-old Dell PowerEdge 2950 running production SQL IS still a real risk, but the mitigation path is already in motion. Only re-raise if: (a) Dr. Barbour signals it's dropped / needs a nudge from Christi, (b) a new DB-dependent project gets blocked by the same delay, or (c) the Dell actually fails.

Applies toSCHARPAgentsCharlFritzCliveRex
ProcessActiveWork - Laptop, Apr 13
AdaptoIT blog mix debate: Stuart vs Warren vs Hugo - decision pending with Bestie #1 weigh-in

Open strategic debate as of 4/13/2026 evening on AdaptoIT blog voice mix and whether how-to should be the dominant angle. POSITIONS: STUART (writer): How-to is a utility anchor, not dominant. Every vendor ships how-to content and it commoditizes the brand. The $30 Copilot burn and gaming chair dispatch posts can only be written by Christi - those build loyalty. How-to brings search traffic but readers leave. Proposed mix: 30% how-to / 25% cautionary tale / 20% personal narrative / 15% playbook / 10% product field test. Advisory posts ad hoc. WARREN (strategy): YES to how-to dominant. How-to is the funnel for future products (AdaptoInbox, AdaptoHub). Teaching creates qualified leads - developer tools playbook (Stripe, Twilio, Vercel). SEO compounds, satire does not rank for search intent. Need authority now with only one published post. Proposed mix: 70% how-to / 30% satire. HUGO (gate): NOT YET APPROVED. Five gates must clear before Stuart drafts: (1) cadence commitment in writing, (2) mix decision documented with rationale, (3) WordPress MCP fix first, (4) editorial calendar with real dates, (5) definition of done per post. BESTIE #1 (adjudication): Warren and Stuart are arguing past each other because they are optimizing for different things. Warren wants a funnel. Stuart wants a brand. Those are not the same goal. The actual tiebreaker is where AdaptoInbox is. If close enough to send people to, Warren wins and go how-to dominant. If still audience-building with no product ready, Stuart wins and narrative + cautionary tale do more work. Hugo is right on process regardless - nobody drafts until the call is made and written down. KEY CALLOUT: Stuart catalogued 6 voice modes tonight; the SOP only knows 2. Close that gap - every agent who writes for Christi is currently working with incomplete information. DECISION STATUS: Held for Christi to name AdaptoInbox readiness. Hugo's 5 gates must clear regardless of mix outcome. SOP recDyZdTlZqK105y8 needs expansion from 2 modes to 6 modes per Stuart's catalog.

Applies toAdaptoITAgentsStuartWarrenHugoDave
ProcessActiveWork - Laptop, Apr 13
Outlook COM send recipe: Display() + 800ms sleep + prepend body before signature

Working pattern for sending email via Outlook COM with the saved signature intact. $outlook = New-Object -ComObject Outlook.Application; $mail = $outlook.CreateItem(0); $mail.To = 'address'; $mail.Subject = 'subj'; $mail.Display() | Out-Null; Start-Sleep -Milliseconds 800; $sig = $mail.HTMLBody; $body = '<p>content</p>'; $mail.HTMLBody = $body + $sig. Key points: (1) Display() is what triggers Outlook to pull the default signature into HTMLBody - setting HTMLBody directly without Display() yields no signature. (2) The 800ms sleep is required because signature insertion is async. (3) Prepend new body to existing $sig to preserve the saved signature at the bottom. (4) Do NOT call $mail.Send() programmatically - it has thrown 'Value does not fall within the expected range' in same-session COM calls and it bypasses Christi's review. Leave the window open for her to click Send.

Applies toAllAgentsAllApril
ProcessActiveWork - Laptop, Apr 13
SCHARP Datto backup recovery HANDLED - seeding drive populated and shipped back

SCHARP Datto backup situation is RESOLVED, not an open risk. Datto shipped a seeding drive. SCHARP populated the drive with data from all 7 servers and shipped it back to Datto. Backups for all 7 servers now recovered. Do not flag Datto as an open SCHARP risk going forward. Charl, Fritz, and Rex should remove Datto from the critical-concern list in SCHARP status reports. If prior briefings or standups still reference 'Datto failing all 7 servers' or '100% storage full' as active problems, that info is stale.

Applies toAllAgentsCharlAll
ProcessActiveWork - Laptop, Apr 13
SCHARP Trellix being uninstalled - CrowdStrike is the going-forward endpoint tool

SCHARP is uninstalling Trellix from all computers. CrowdStrike is the go-forward endpoint security tool. The previously flagged 'CrowdStrike/Trellix $60K/yr overlap' is being resolved through Trellix decommission. Do not continue flagging the overlap as an open decision. Charl, Fritz, and Rex should treat this as in-progress consolidation, not a pending decision.

Applies toAllAgentsCharlAll
ProcessActiveHome - Desktop, Apr 12
Always set Source Computer on Agent Queue items

When creating an Agent Queue record, always set the Source Computer field (fld3Wsd1Cz0TCqAGh). Valid options: Work - Desktop, Work - Laptop, Home - Desktop, Home - Laptop. This lets Christi trace queue items back to the machine they were created on, which helps debug machine-specific issues (env var problems, MCP connections, file paths) and understand where work happens across her multi-computer setup. Determine the source by checking hostname or confirming with Christi at session start. These four are the canonical set - do not use shortened or made-up names like 'Home' alone or 'Pasadena'.

Applies toAllAgentsAll
ProcessActiveHome - Desktop, Apr 12
Blog drafts belong in Airtable Blog Pipeline fields, not on disk

When content writers (Stuart, Dave, Kevin, Bob, Otto, Phil) produce a blog draft, save the FULL HTML body into the Airtable Blog Pipeline record - not as a file on disk. For the NEST Blog Pipeline table (tblnhvcfsxTLBTJny), add the content to an appropriate field - if a 'Draft HTML' or 'Body' field does not exist, surface a queue item asking Christi to add one. Do NOT fall back to saving files. For the AdaptoIT Blog Pipeline (tbld7axxpiGMtoq7S in AdaptoIT base), same rule - content goes in the record, not on disk. WHY: Christi works across 4 computers. Files saved on one machine are invisible to agents running on another. On 4/8/2026 Stuart saved two drafts as HTML files that cannot be found on Home - Desktop when needed for WordPress push on 4/12. Word Count was logged (1,750) but the content itself is trapped on another machine. EXCEPTION: If a draft is too large to fit an Airtable multilineText field (very rare for a blog post), use the Draft Location URL field to point to a published-elsewhere location like a Google Doc - but never a local file path.

Applies toAdaptoITChoreStepsCounted DoorsMy Imperfect LifeAgentsStuartDaveKevinBobOtto+1
ProcessActiveWork - Laptop, Apr 12
SCHARP Box.com Audit Results

Full Box environment audit completed 4/12/2026. 78 users on 80 licenses. 5 users hold 96% of storage: Robert Featherstone (217GB), Christi/Lorenzo (166GB), Belinda Betton (33GB), Pratiksha Yadav (19GB), Cesar Portillo (15GB). 41 of 78 users are ghost licenses with 0-2 files and under 2MB each (~$720/mo wasted, ~$8,600/yr). 1 user (Shane Sparkes) is Inactive status. Lorenzo folder: 73 items (59GB) are Lorenzo-only and safe to migrate without coordination. 44 items (107GB) are shared and need user coordination. Stale pre-2023 data: 7.79GB across 87 items.

Applies toNone
ProcessActiveHome - Desktop, Apr 12
Use the Agent Queue for async findings and questions

When an agent discovers something Christi needs to decide on, or surfaces a finding she should know about, write it to the Agent Queue table in NEST (base appYVXneddw1eKZEu, table tblkAC4m6C5DWqGQJ) instead of interrupting her workflow. Record fields: - Title: short, punchy, action-oriented - Type: Question (needs decision) or Finding (discovered) - Status: start as Open. Lifecycle: Open > Answered > Acknowledged > Resolved (or Dismissed) - Priority: Blocking / High / Normal / FYI - Agent: who surfaced it, use 'Bestie2' as generic - Context: full self-contained explanation, multi-paragraph is fine - Answer: her decision, can pre-fill if you found the answer yourself - CW Ticket, Client, Related Project, Related Task: optional links One question, one response, done. Not a chat.

Applies toAllAgentsAll
ProcessActiveHome - Desktop, Apr 10
Documentation lives in Airtable, not local files

Project documentation, plans, and tracking go in the NEST Airtable base. Do not store project docs as markdown files on the local computer. Use the appropriate NEST table (Projects, Plans, Tasks, Agent Queue, etc.) instead. The Miro board for AdaptoInbox remains as a visual reference, but actionable project data lives in Airtable.

Applies toAllAgentsAll
ProcessActiveWork - Laptop, Apr 9
All client emails must be logged as internal notes on CW tickets

ALL client emails sent via Outlook COM or any other method MUST be logged as an internal note on the corresponding CW ticket (service or project). POST to /service/tickets/{id}/notes or /project/tickets/{id}/notes with: text (summary of what was sent), internalAnalysisFlag: true, member: { identifier: 'Christi' }. Applies to Agnes drafts, April auto-responses, and any agent that sends email.

Applies toAllAgentsAgnesAprilAll
ProcessActiveWork - Laptop, Apr 9
All emails must be HTML with correct Outlook signature

ALL emails sent by agents must use HTMLBody (not Body) with the correct signature appended. Signature files at env:APPDATA\Microsoft\Signatures\. SCHARP contacts (@scharpca.org) use Main (christi.brown@scharpca.org).htm. AF contacts (@abilityfirst.org) use Main (ckbrown@abilityfirst.org).htm. All others use Main (christi@crimsonit.com).htm. Use Outlook COM: New-Object -ComObject Outlook.Application, CreateItem(0), set HTMLBody with message + signature HTML.

Applies toAllAgentsAgnesAprilAll
ProcessActiveWork - Laptop, Apr 9
Blog pipeline: Stuart pushes to WordPress, all agents track in Blog Pipeline table

Stuart ALWAYS pushes finished drafts to WordPress (adaptoit.com) in draft status. All blog agents track work in Blog Pipeline table (NEST). Stuart=adaptoit.com, Otto=crimsonit.com, Bob=my imperfect life, Kevin=counteddoors.com, Dave=brainstorms (status Idea), Phil=SEO audit. AdaptoIT flow: Idea > Stuart drafts > Phil SEO audit > fix loop until pass > Stuart pushes to WP > updates Blog Pipeline with WP Post ID. Stuart owns the full loop for AdaptoIT. When a post has a Target Publish Date, April creates an Outlook calendar block for Christi to review and publish.

Applies toAllAgentsStuartDavePhilOttoBob+2
ProcessActiveWork - Laptop, Apr 9
Planning workflow: Segrid plans, Hugo validates, Agent Queue for questions

Segrid is both planner AND project manager. Workflow: 1) Segrid builds plan (research, scope, timeline, tasks, budget), 2) Hugo validates (pass/conditional/fail), 3) Questions go to Agent Queue, 4) Segrid executes and tracks. Three plan templates: Crimson Billable (CW project, budget, agreement, quote number), Internal/Non-Billable (AdaptoIT, agent training, no CW), Dev Project (tech stack, repo, deploy target, environments). Every new project gets a plan before work starts. Hugo validates before Active status.

Applies toAllAgentsSegridHugoAll
ProcessActiveWork - Laptop, Apr 8
April must track sent/received email state to avoid re-flagging handled items

April MUST keep notes on what Christi has sent and received so she doesn't re-surface items already handled. After each inbox check, update knowledge base with current state. Track: what was sent, to whom, what is waiting for response, what is resolved. Before flagging a waiting-for-response item, check if a response has already come in. Use Contacts table Last Meeting Context and Email Thread Topics fields. Knowledge Base table can store thread-level status.

Applies toAllAgentsApril
ProcessActiveWork - Laptop, Mar 28
Always generate passphrases, never random character passwords

ALWAYS generate passphrases, NEVER random character strings. Format: 3-4 random words + a number + a special character. Capitalize first letter of each word. Examples: Maple-Sunset-River-42!, Thunder7$Bright-Ocean, Coffee-Mountain-Spark-91#. Apply every time a password is generated: user creation, password resets, service accounts, BGA accounts.

Applies toAllAgentsAll
ProcessActive
AdaptoIT documents save to AdaptoIT OneDrive, not local Documents

On any computer where `C:\Users\Christi\OneDrive - AdapToIT\` exists, all AdaptoIT-branded deliverables (drafts, lead magnets, blog posts, training modules, templates, marketing assets) save to that OneDrive tree. Canonical blog/lead-magnet path: `C:\Users\Christi\OneDrive - AdapToIT\03_Projects\AdapToIT-Blog\Documents\`. Before creating an AdaptoIT file, check that the Adapto OneDrive exists and save there. Never default to local `C:\Users\Christi\Documents\`. If the Adapto OneDrive is NOT mounted on the current machine, ASK Christi where to save rather than silently writing to local. Same pattern likely applies to other brand OneDrives (Crimson IT, foster care) — check for a matching `OneDrive - [Brand]` folder before saving brand-specific content locally.

Applies toAdaptoITAgentsAll
ProcessActiveApr 30
Lunch/personal FYI items don't get surfaced as actionable

Lunch coordination, personal calendar items, and FYI-only social meetings (e.g., Dr. Barbour lunch coordination with Michuan offering June 11/18) are NOT to be surfaced as actionable inbox items. They are FYI for Christi only. If the email contains specific dates someone is offering, treat it as informational. Do not draft a 'pick a date' reply, do not flag it as 'Christi to Respond.' Christi handles these directly when she has time. Exception: if Christi is the host or organizer and her response is required to confirm a meeting that's already on her calendar, that's actionable.

Applies toAllAgentsApril
ProcessActiveWork - Laptop, Apr 13
Social Media Matrix rationale - Christi's own wrap-head tool, success = easier audience building

The Social Media Matrix table (tbl05iTzLuOnBssEL) exists because Christi needed a single view to wrap her head around where to post what, across 5 brands and 9 accounts. Success metric: it makes audience building easier for her, faster decisions on where a given piece of content belongs. This is not a scope-creep side project - it is a personal operating tool that unblocks social execution. Hugo and other gate agents should not flag it as missing problem statement - the problem statement is 'I cannot keep 5 brands and 9 accounts straight in my head.'

Applies toAllAgentsHugoWarrenSegrid
ProcessActiveWork - Laptop, Apr 9
Segrid must create project subfolders under client folders

When Segrid creates a new project plan, she MUST create a project folder under the client's folder. Path: 3 - Clients and Projects/[Client Name]/[Project Name]/. Contents: deliverables, drafts, meeting notes, export files, reports, data pulls. Examples: Cotsen Foundation/AI Assessment/, Ability First/License Optimization/, Scharp/Cloud Migration/.

Applies toAllAgentsSegrid
ProcessActiveWork - Laptop, Apr 1
Quotes go to sales via Teams channel, not email

Quotes for new client projects are submitted to the sales team via a Teams channel, NOT emailed directly to Anzor or the client. Christi provides the SOW and total hours only. No pricing breakdown (sales handles that). Keep quotes lean: scope of work + total hours, no fluff, no per-phase hour breakdowns unless asked.

Applies toAllAgentsSegridHugoAll