Settings
How the OS is set up to behave, read live from where each rule lives. Whether it is working is on System. This page changes nothing; each row says where to change it.
Company
Particulars every document, invoice and report uses.
Legal name
Name on documents, invoices and posts
GAB Climate Smart Investments Ltd
Company particularsSet in code:
lib/company.tsChange: Reviewed code change; legal name, banker, RC, TIN or address need your approval
Registration and tax
Statutory identifiers on documents
RC CS065722016 · TIN C0006403034 · incorporated 2016-04-18
Company particularsSet in code:
lib/company.tsChange: Reviewed code change; legal name, banker, RC, TIN or address need your approval
Contact
Public contact details
info@gabclimatesmart.com · +233 59 105 1711 · gabclimatesmart.com
Company particularsSet in code:
lib/company.tsChange: Reviewed code change; legal name, banker, RC, TIN or address need your approval
Head office
Registered business address on documents
5 Lagoon Close, Tse Addo, Accra, Greater Accra Region, Ghana
Company particularsSet in code:
lib/company.tsChange: Reviewed code change; legal name, banker, RC, TIN or address need your approval
Banking
Payment details on invoices (full number only on documents)
Absa Bank Ghana, Ring Road Central · account •••••••5651
Company particularsSet in code:
lib/company.tsChange: Reviewed code change; legal name, banker, RC, TIN or address need your approval
Company description
How agents describe GAB anywhere
Company Positioning rule (five service lines)
Why: CEO, 9 October 2026: not hard-coded because it evolves
CommsSet in a skill or contract:
docs/skills/gab-comms-content-creation/SKILL.mdChange: Edit the Comms parent skill (reviewed)
People and access
Who can sign in, which assistants can connect, and where local work can run. Access changes stay yours.
Sign-in roles
Only the CEO role can approve or reject
2 account(s); CEO: danielnsowah@yahoo.com, bustabus48@gmail.com
Show 2 details
- danielnsowah@yahoo.com — ceo
- bustabus48@gmail.com — ceo
SystemOS record:
user_profilesLast changed 29 Apr 2026, 07:33Change: You only, in Supabase Auth (never an agent)
Assistants permitted to connect
Which external assistants may use OS tools
2 OAuth client(s) enrolled
Why: Any connected assistant operates the OS under the same records (CEO, 16 October 2026)
SystemDeployment config:
GAB_MCP_OAUTH_CLIENT_IDSChange: You, in Vercel environment settings
Assistants active (30 days)
Observed activity, for comparison with what is permitted
codex, claude_code, gemini_antigravity, kimi, other, in_app_chief_of_staff
Show 6 details
- codex: 472 session(s), last 2026-10-20 21:22 UTC
- claude_code: 201 session(s), last 2026-10-20 11:07 UTC
- gemini_antigravity: 34 session(s), last 2026-10-13 13:00 UTC
- kimi: 31 session(s), last 2026-10-12 13:18 UTC
- other: 15 session(s), last 2026-10-12 12:47 UTC
- in_app_chief_of_staff: 21 session(s), last 2026-10-12 11:38 UTC
SystemOS record:
agent_operating_sessionsLocal work hosts
Where steps needing local files, apps or exports run
Daniel local Mac
Show 1 detail
- Daniel local Mac: last seen 2026-10-20 21:43 UTC; capabilities local_files, local_shell
SystemOS record:
local_agent_hostsLast changed 20 Oct 2026, 21:43Change: Installed and enabled on the Mac (scripts/install-local-host.mjs)
Rhythm
Everything that runs on a schedule. Whether each run worked is on System.
Comms daily run
Planning, making and revising Comms work on your Mac; not a publishing quota
Daily at 08:30 Africa/Accra · Active
Why: CEO, 19 October 2026: one Comms cadence
CommsOS record:
comms_campaigns company-outreach-ongoingLast changed 20 Oct 2026, 11:16Business Development
One agent owning inbound, listening, research, follow-through and outcomes
Active · Daily inbound sweep and follow-through 08:00 Africa/Accra; research Mon/Wed/Fri; Monday demand plan
Why: CEO, 20 October 2026 (memory cc7c8baf)
Show 3 details
- Executor: claude_code (scheduled on the Mac)
- Last run: none observed yet
- Instruction: docs/operating-model/BUSINESS_DEVELOPMENT_OPERATION.md
Business DevelopmentOS record:
operating_responsibilities business_developmentLast changed 20 Oct 2026, 02:54 by ceo:2026-10-20Change: Ask an assistant to pause or resume with a reason (record_business_development_run)
Research days
When market intelligence investigates new sources
Monday, Wednesday, Friday
IntelligenceSet in code:
lib/intelligence/cycle.tsChange: Reviewed code change by an agent, on your instruction
Scheduled jobs
Agents and maintenance that run automatically
25 jobs on Vercel
Show 25 details
- Daily 05:30 UTC — Writes the Morning Briefing card for your review
- Daily 06:00 UTC — Collects crop price observations
- Daily 05:00 UTC — Reviews farm and GIS context for management actions
- Sundays 18:00 UTC — Weekly finance summary
- Every 3 days 05:30 UTC — Satellite NDVI for every farm block (Earth Engine)
- Every 3 days 06:00 UTC — GIS analysis of farm blocks
- Hourly at :00 — Publishes approved Comms posts when due
- Every 4 hours — Checks for urgent items to notify you about
- Mondays 06:00 UTC — Monday weekly email
- Daily 06:00 UTC — Buyer follow-up reminders
- Daily 06:15 UTC — Receivables and overdue payment check
- Daily 07:30 UTC — Consultancy follow-up reminders
- Days 28-31 of the month 05:00 UTC — Prepares the monthly payroll approval
- Mondays 07:00 UTC — Weekly farm intelligence review
- Daily 05:00 UTC — Refreshes the operating snapshot
- Daily 08:00 UTC — Syncs social media metrics
- Mondays 07:00 UTC — Weekly website audit
- Mondays 04:00 UTC — Harvests EIRAS legal and policy sources
- Mondays 05:00 UTC — Weekly evidence freshness sweep
- Every 2 hours — Keeps company knowledge search current
- Daily 04:00 UTC — Closes alerts whose cause is resolved
- Every minute — Runs queued SiteSense screenings
- Hourly at :20 — Reconciles website enquiries and leads
- Every minute — Reconciles agent session telemetry
- Every 2 minutes — Market intelligence investigation queue
SystemDeployment config:
vercel.jsonChange: Reviewed change to vercel.json
Notifications
How and when the OS reaches you. Becoming your own preferences in phase 2.
Checking this device…
Phone notifications
What reaches the installed GAB OS app on your phone; turn it on per device above
Customer messages (one per conversation), items needing your approval, the morning briefing, intelligence changes
Why: CEO, 20 October 2026: the OS on the phone matters most; a customer message must not wait for the laptop
SystemSet in code:
lib/push/notify.tsChange: Per device: the switch above. What triggers it: reviewed code change
Approvals
Where decisions reach you
Dashboard queue · phone notification · email for urgent items
ApprovalsSet in code:
lib/comms/whatsapp-notify.tsChange: Reviewed code change by an agent, on your instruction
Urgent check
Fresh urgent items are emailed immediately; routine reminder at most every 24 hours
Every 4 hours
AlertsSet in code:
app/api/agents/ceo-notify/route.tsChange: Reviewed code change by an agent, on your instruction
Morning Briefing
Your daily decision card
Daily 05:30 UTC, on the home page and in Approvals
BriefingDeployment config:
vercel.jsonChange: Reviewed code change by an agent, on your instruction
Communications defaults
Identity and limits for everything said outwardly.
Sender identities
Which address each email goes from
Company: info@gabclimatesmart.com · You personally: your Gmail
CommsSet in a skill or contract:
docs/modules/comms.md (Sender Identity)Change: Comms contract (reviewed)
Publishing
Every post, email and outward message
Only after your approval of the exact piece
ApprovalsSet in code:
lib/comms/publisher.tsChange: Reviewed code change by an agent, on your instruction
Prices
Price claims in any content
Never published; market-led, at or above the internal floor
Why: CEO, 13 October 2026
CommsSet in a skill or contract:
docs/skills/gab-comms-content-creation/SKILL.mdChange: Comms parent skill (reviewed)
Campaigns
Held campaigns and their backlog are never restarted automatically
3 active · 4 on hold
Show 7 details
- Active: Company outreach operating plan
- Active: CLICOM Launch & Climate History Series
- Active: Q3 2026 Cassava Harvest Buyer Push
- On hold: FloodSense Household Susceptibility Awareness 2026
- On hold: Q3 2026 Tool Launch Sequence
- On hold: Q3 2026 Farm Block Explorer Promotion
- On hold: Q3 2026 Community & Climate Programme
CommsOS record:
comms_campaignsLast changed 20 Oct 2026, 11:16Standing rules and decisions
Your words that agents must keep following, newest first. Check here for rules that have gone stale.
Comms taste rules
Applied when drafting and reviewing all content
9 active
Show 9 details
- 2026-10-19: Posts must clearly state their specific topic, outlining actionable solutions. Introduce GAB's relevant tools, like Consentrack, when applicable. (your words: "the caption is apt if the reader has an idea of what the post is about but its a bit hard to make from the caption that the post is about Project Initiation and Management which includes Stakeholder Consultantions and Engagements. Also this is a general thing. for eg. this post is about appropriate ways to consult or engage. we have a free tool which supports this process, Consentrack. when appropriate the next actions should bring them in")
- 2026-10-16: Every post must clearly state its core concept and define all terms or implied context. (your words: "I do not understand the concept of the post and what Brief is the text talking about")
- 2026-10-15: Make it specific: Identify a customer problem, present GAB's clear solution, and include a direct call to action. (your words: "The post still feels too general. Explain a specific customer problem GAB can solve, make the offer clear, and give the reader a direct next step.")
- 2026-06-17: Do not use placeholder graphics, UI mockups, or stock photos for tools. All public posts must use real app screenshots or field photography. (your words: "Rejected because drafts use mockups and placeholder graphics. All public posts showcasing GAB tools must use actual, real screenshots or field photography.")
- 2026-06-17: Do not use placeholder graphics, UI mockups, or stock photos for tools. All public posts must use real app screenshots or field photography. (your words: "Rejected because drafts use mockups and placeholder graphics. All public posts showcasing GAB tools must use actual, real screenshots or field photography.")
- 2026-06-14: Do not feature the CEO or a single individual as the hero subject. Prefer team and group shots that show multiple people at work. (your words: "I dont like to be the subject; use the photo with three people beside the toyota")
- 2026-06-14: Keep the comms voice human and warm, not corporate: write about the people and the real work, not the institution. (your words: "the narrative is good but we can humanize it a bit")
- 2026-06-12: Always publish professionally designed content with clear, strategic execution, not just templated text dumps. (your words: "the output is not good for me and the execution approach is also not clear and straight forward to me. The visuals must look like something a professional marketer would publish, not a template with text dumped on it")
- 2026-06-12: Tell a particular story backed by evidence. Do not describe the image. (your words: "it comes out as aiming to describe the picture used rather than telling a particular story and backing it with evidence")
CommsOS record:
comms_taste_rulesLast changed 19 Oct 2026, 03:05Briefing standing rules
The daily briefing must not raise what these rule out
1 active
Show 1 detail
- 2026-10-20: stop raising "Decide on Ministry of Roads & Highways JV Strategy" — I have not gathered enough data to particiapte
BriefingOS record:
agent_actions (Morning Briefing decisions)Closed or deferred subjects
Alerts and agents must not re-raise these
8 in force
Show 8 details
- 2026-10-13: ruled out — topic mining-sector-clients-partners-csr: CEO 2026-10-13: avoid mining entirely (AIOPS Tier C), as clients and as partners, including mining-company CSR/community agriculture programmes such as Asanko Gold CASP. Applies to intelligence findings, opportunities and outreach.
- 2026-10-12: ruled out — topic broad-cross-agent-telemetry-testing: Daniel: "Stop the broad testing now. Use the safeguards in normal work and only revisit actual failures. Keep the knowledge-base initiative closed and historical missing outcomes unknown." Broad proactive cross-agent test rounds are closed. Continue normal safeguards; investigate concrete observed failures only. This decision does not suppress actual failure signals or reopen the knowledge-base initiative.
- 2026-09-15: deferred to 2026-11-15 — project 0f14a718-f310-4e69-946f-9a504f5f6c03: CEO decision 2026-09-15: "leave RamsarMap to 795fcc10." WHY THIS IS NOT A GAP LEFT OPEN. Portfolio initiative 795fcc10, GAB Wetland & Flood Suitability Guide, sits at G0 needs_assessment and its recorded next action reads "Complete Sprint 1: source register, backend API contract, Data Trust readiness audit, and Ramsar frontend implementation backlog." The Ramsar front end is explicitly inside that initiative's scope. Rewriting it under WP3b-ii would have resolved design and product questions 795fcc10 exists to decide — and WP3b-ii's own NOTE ON RAMSARMAP warned against exactly that: RamsarMap is not a legacy stray, it is the precursor SiteSense and FloodSense grew out of, and it was used operationally to target drone survey areas during the Blue Carbon work. WHAT THIS MEANS IN PRACTICE. ramsar.gabclimatesmart.com and wetland-flood.gabclimatesmart.com continue to be served by the standalone gab-ramsar-map project, on hand-written HTML and Leaflet, resolving NEITHER brand version. That is now a KNOWN AND OWNED condition rather than an unnoticed one: recorded in the WP6 handover consumer register of project ed16b3ff, in docs/modules/brand.md, and here. WHAT 795fcc10 INHERITS rather than rediscovers. The measured source: index.html 132,161 bytes plus gis_data.js 98,188, carbon_data.js 18,465 and coastal_data.js 9,346 — roughly 126KB of which is data that carries over untouched. The fact that its backends already exist and are unaffected at /api/eiras/public/wetland-flood/{terrain,report,contributions}. The in-repo pattern now proven twice by FloodSense: a Lite route on LiteToolShell plus a TOOL_SUBDOMAINS middleware entry, reusing EirasBoundaryMap rather than re-implementing Leaflet. And the requirement that any rebuild adopt Ground Sample via lib/brand.ts, since this is now the only public GAB surface not on the delivered identity. SIZING CARRIED FORWARD: 4-6 focused days for the UI alone, from the WP3b-ii pre-build gate. That figure belongs to 795fcc10's planning now, not to the architecture project. NOT A REVERSAL OF THE CONSOLIDATION GOAL. The goal was that every public surface resolve to a named product with a known owner. RamsarMap now has one. Consolidating its hosting follows whenever 795fcc10 decides what the tool should become — the right order, since rebuilding a front end before deciding the product is how the estate accumulated doubles in the first place. REVIEW 2026-11-15. If 795fcc10 has not moved off G0 by then, the question returns: a public surface sitting off the delivered identity indefinitely is a different decision from one waiting on an active initiative.
- 2026-09-14: ruled out — project ed16b3ff-cd84-4106-ad07-b5df59384c93: CEO Daniel Nsowah, 2026-09-14, at review event R2: "the gold is not required." WHAT IS RULED OUT. Brand Guide v2 section 4 states that hero numbers "always render in Big Shoulders Bold + Gold #f5a623" and calls this "the single most recognisable visual fingerprint of the brand." That rule is superseded. The selected direction, Ground Sample, uses neither the gold nor Big Shoulders. WHY IT WAS ASKED SEPARATELY. None of the three candidate directions retained the treatment. Rather than let a documented piece of canon disappear because no option happened to include it, it was put to the CEO as its own question at R2 so the loss would be deliberate. He answered directly. CONSEQUENCE. #f5a623 and #1a5c2a become retired brand values once the new system ships, and belong in the retiredVariants registry of scripts/check-bound-values.mjs — the same mechanism now protecting the canonical EIRAS expansion. NOT YET, THOUGH. BR-007 requires CLICOM to finish its 20-theme run on the outgoing identity. Version pinning must be demonstrated before the first token change ships, so the old palette is retired only after that. Retiring it early would strand a series that is 68 percent complete. Brand Guide v2 must be updated in the same change that ships the new system, or the guide will contradict the live estate — the precise failure mode the architecture consolidation exists to stop.
- 2026-08-07: ruled out — topic token-rotation: CEO DECISION 2026-08-07, verbatim: "we are not rotating any tokens yet." / "record the no rotation." CLOSED. Do not re-raise token rotation, and do not propose it as a remediation step. WHAT THIS COVERS: the Supabase Management API PAT (sbp_69e3…, redacted) found in .claude/settings.local.json across 380 allow rules and present in gab-os git history; and any other credential rotation an agent might surface from the same findings. Nothing depends on rotation — CI (deploy.yml supabase link/db push, and the nightly backup-and-restore-drill) keeps working precisely because the token is unchanged. CONTEXT AN AGENT WILL REDISCOVER AND SHOULD NOT RE-ESCALATE: the PAT is account-level (not project-scoped), so it can run arbitrary SQL, pause/delete projects and read keys across both wodaprxocrpuyspbdcoj and hyopniuqpiostogtacly. It is in gab-os git history (removed from HEAD in 31420e6b, still recoverable from earlier commits; the repo is private and protect-main-history blocks the rewrite that would remove it). It was also printed into a session transcript by claude-opus-5 on 2026-08-07. The 380 allowlist entries pre-authorise direct Management API SQL, which rule 02-supabase-patterns forbids. All of this was presented to the CEO in full before the decision. Recorded as ruled_out rather than not_now deliberately: the CEO said "yet" but set no date, and inventing a review deadline would manufacture a commitment he did not make. Reverse with verdict 'reopen' whenever he chooses.
- 2026-08-04: ruled out — buyer 73cb67ae-b44d-4957-b3e7-2c7c52b4da81: CEO decision 2026-08-04 (Daniel, verbatim): "Remove GIHOC, Ayensu and Caltech they are dead now. if we later in the future discover them again while they are working fine. but for now, remove them." Caltech: shelved 2026-04-29 as dormant (phones unanswered, website frozen at 2023, GEPA entry last updated 2018, no mention in Kasapreko FY2024 results). A 2026-07-08 "reactivation signal" (a March 2026 source claiming ethanol production was to begin and that Caltech was calling for more cassava farmers) was NEVER verified against the company and the record has sat on "CEO to personally verify" since. REVERSIBLE: if direct contact confirms Caltech is live and buying fresh roots, supersede this decision and re-open.
- 2026-08-04: ruled out — buyer 8183b15d-9155-4162-9a6d-74648f014554: CEO decision 2026-08-04 (Daniel, verbatim): "Remove GIHOC, Ayensu and Caltech they are dead now. if we later in the future discover them again while they are working fine. but for now, remove them." Ayensu: research 2026-04-02 found ASCO non-operational — factory locked up and overgrown, only security guards on site, unresolved GoG/Jospong dispute, chronic farmer payment arrears up to 12 months, 4 shutdown cycles since 2001. Shelved since 2026-05-14 yet still surfaced under "Next Due / Focus" for ~82 days because shelving never cleared next_action_date (2026-04-08). REVERSIBLE: re-open only on confirmed evidence the Awutu Senya factory is operating and settling farmer payments.
- 2026-08-04: ruled out — buyer f279fc06-6689-4344-8f48-68ae05e763e6: CEO decision 2026-08-04 (Daniel, verbatim): "Remove GIHOC, Ayensu and Caltech they are dead now. if we later in the future discover them again while they are working fine. but for now, remove them." GIHOC: a B2B supply proposal was sent 2026-06-12 and no response was ever logged; the record then generated a "Buyer Follow-Up (Overdue)" alert on every wake-up plus a daily CEO email for ~46 days across roughly five sessions in which it was verbally ruled out. REVERSIBLE: supersede this decision and re-open with a fresh next_action_date if GIHOC is found to be actively buying fresh cassava roots.
AlertsOS record:
surface_decisionsLast changed 13 Oct 2026, 17:47Change: Tell an assistant to record or reopen the decision (record_decision)
Money, AI and data safeguards
Limits and protections. Whether each is healthy right now is on System.
Division budgets (2026-10)
Monthly spending limits per division
Research models
Market intelligence on research days: finding sources with web search, extracting facts, and challenging findings before Follow-up Ready
Discovery anthropic:claude-sonnet-5-5 · extraction google:gemini-3.8-flash · challenge anthropic:claude-sonnet-5-5
Why: Chosen 13 October 2026 after a scored comparison (docs/operating-model/market-intelligence-model-decision-2026-10-13.md); runs on the OS API keys by design
Show 1 detail
- Discovery fallback: gemini-3.8-flash
ResearchSet in code:
lib/intelligence/models.ts (environment-overridable)Change: Reviewed change or GAB_RESEARCH_* environment settings in Vercel
Other AI models
Which model writes and checks each part of the OS
gemini-2.5-flash (21) · claude-sonnet-4-6 (2) · gemini-3.1-pro-preview (1) · gemini-1.5-pro (1)
Show 25 details
- gemini-2.5-flash — app/api/agents/comms-draft/route.ts
- gemini-2.5-flash — app/api/agents/daily-digest/route.ts
- gemini-2.5-flash — app/api/agents/farm-intelligence/route.ts
- gemini-2.5-flash — app/api/agents/finance-weekly/route.ts
- gemini-2.5-flash — app/api/agents/gis-analysis/route.ts
- gemini-2.5-flash — app/api/agents/market-intel/route.ts
- gemini-2.5-flash — app/api/agents/orchestrator/tools/comms.ts
- gemini-2.5-flash — app/api/agents/proactive-content/route.ts
- gemini-2.5-flash — app/dashboard/portfolio/actions.ts
- gemini-2.5-flash — lib/ai/memory/knowledge-catalog.ts
- gemini-2.5-flash — lib/comms/campaign.ts
- gemini-2.5-flash — lib/comms/media-tagger.ts
- gemini-2.5-flash — lib/comms/storyCraftQA.ts
- gemini-2.5-flash — lib/comms/tasteRules.ts
- gemini-2.5-flash — lib/comms/video.ts
- gemini-2.5-flash — lib/comms/visionQA.ts
- gemini-2.5-flash — lib/projects/audit.ts
- gemini-2.5-flash — lib/research/deep_research.ts
- gemini-2.5-flash — lib/studio/revision.ts
- gemini-2.5-flash — lib/voice/qualification.ts
- gemini-2.5-flash — lib/voice/summarize.ts
- claude-sonnet-4-6 — app/api/agents/task-executor/route.ts
- claude-sonnet-4-6 — lib/ai/memory/knowledge-catalog.ts
- gemini-3.1-pro-preview — app/api/agents/gis-analysis/route.ts
- gemini-1.5-pro — lib/comms/media-tagger.ts
SystemSet in code:
see detailChange: Reviewed code change by an agent, on your instruction
Backups
Disaster recovery
Nightly offsite database backup, restore-verified, copied to Drive
SystemSet in a skill or contract:
Strategic Canon (npm run gab:wakeup)Write protection
Records that must not be silently rewritten
History, append-only and operational tables guarded by database triggers
SystemSet in code:
supabase/migrations (write-protection manifest)Change: Reviewed code change by an agent, on your instruction
Deployment boundary
Where production secrets may exist
Production only; preview deployments disabled; secrets never in Preview
SystemDeployment config:
docs/operating-model/deployment-boundaries.jsonChange: You, in Vercel; checked by npm run gab:deployment-boundaries