home / skills / different-ai / agent-bank / company-admin

company-admin skill

/.opencode/skill/company-admin

This skill helps you locate and update company administrative data stored in Notion, ensuring accurate records across MCP Skills and Admin/Legal pages.

npx playbooks add skill different-ai/agent-bank --skill company-admin

Review the files below or copy the command above to add this skill to your agents.

Files (2)
SKILL.md
6.5 KB
---
name: company-admin
description: Access and update company administrative information stored in Notion
---

## What I Do

This skill instructs how to access and update company administrative information. **All data lives in Notion** - this skill just tells you where to find it and how to update it.

---

## Prerequisites

### Required: `.env` file

This skill requires a `.env` file at `.opencode/skill/company-admin/.env` with Notion page IDs.

**If the file doesn't exist or is missing info, ask the user:**

```
I need to set up the company-admin skill. Please provide:
1. MCP Skills page ID (company-level info)
2. Admin/Legal page ID (personal details, sensitive info)
3. Investor Cheat Sheet page ID (optional)

You can find page IDs in the Notion URL after the page title.
```

Then create the `.env` file:

```bash
# Check if .env exists
cat .opencode/skill/company-admin/.env

# If missing, create it with user-provided values
```

### `.env` Template

```env
# Notion Page IDs for Company Admin
# Find these in the Notion URL: notion.so/[page-title]-[PAGE_ID]

NOTION_MCP_SKILLS_PAGE_ID=
NOTION_ADMIN_LEGAL_PAGE_ID=
NOTION_INVESTOR_CHEAT_SHEET_ID=

# External service URLs (non-sensitive)
FIRSTBASE_DASHBOARD_URL=https://app.firstbase.io/company/OR5DEAF6/details
TEAM_CALENDAR_URL=https://cal.com/team/0finance/30
```

---

## Workflow

### Step 1: Load Config

```bash
# First, check for .env file
cat .opencode/skill/company-admin/.env
```

If missing or incomplete → Ask user to provide the page IDs and create the file.

### Step 2: Fetch from Notion

```
# For company-level info (incorporation, officers, addresses)
notion_notion-fetch: id="$NOTION_MCP_SKILLS_PAGE_ID"
→ Look at "Company Admin" section

# For personal details (passport, addresses, stock status)
notion_notion-fetch: id="$NOTION_ADMIN_LEGAL_PAGE_ID"

# For investor questions
notion_notion-fetch: id="$NOTION_INVESTOR_CHEAT_SHEET_ID"
```

### Step 3: Update Notion (when user provides new info)

```
# Update Admin/Legal page (personal info, stock status, etc.)
notion_notion-update-page:
  page_id: "$NOTION_ADMIN_LEGAL_PAGE_ID"
  command: "insert_content_after"
  selection_with_ellipsis: "[find appropriate section]"
  new_str: "[new content]"

# Update MCP Skills page (company-level info)
notion_notion-update-page:
  page_id: "$NOTION_MCP_SKILLS_PAGE_ID"
  command: "insert_content_after" or "replace_content_range"
  ...
```

---

## What Goes Where

| Info Type                                     | Store In                   |
| --------------------------------------------- | -------------------------- |
| Personal details (passport, DOB, citizenship) | Admin/Legal page           |
| Personal addresses (home, mailing)            | Admin/Legal page           |
| Stock/shares status                           | Admin/Legal page           |
| Company details (legal name, state, industry) | MCP Skills → Company Admin |
| Officers/directors/shareholders               | MCP Skills → Company Admin |
| Company addresses (registered agent, bank)    | MCP Skills → Company Admin |
| Service providers (Firstbase, Mercury)        | MCP Skills → Company Admin |
| Investor Q&A                                  | Investor Cheat Sheet       |

---

## Security Rules

### DO

- Store page IDs in `.env` file (gitignored)
- Fetch from Notion for accurate, up-to-date info
- Update Notion when user provides new info
- Ask user to create `.env` if missing

### DON'T

- Hardcode page IDs in the skill file
- Cache sensitive info anywhere locally
- Echo passport numbers, SSN in chat responses
- Guess or make up legal/financial details

---

## Common Tasks

| Task                    | Action                                                   |
| ----------------------- | -------------------------------------------------------- |
| "What's our address?"   | Fetch MCP Skills page → Company Admin → Addresses        |
| "Update my address"     | Update Admin/Legal page in Notion                        |
| "Fill out a form"       | Fetch relevant page, use info, don't echo sensitive data |
| "Add new company info"  | Update MCP Skills page → Company Admin section           |
| "Stock/shares question" | Fetch Admin/Legal page → Stock section                   |

---

## Admin Tasks Management

**Tasks are stored in the Admin/Legal page under "# Admin Tasks" section.**

### Task Structure

```markdown
# Admin Tasks

## Active Tasks

### [Category] (Due: [date])

- [ ] **Task name** - Description
  - Subtask or context
  - Links, phone numbers, etc.
- [ ] Another task

## Completed Tasks

- [x] Completed task - moved here when done
```

### How to Add a Task

```
notion_notion-update-page:
  page_id: "$NOTION_ADMIN_LEGAL_PAGE_ID"
  command: "insert_content_after"
  selection_with_ellipsis: "## Active Tasks...appropriate category"
  new_str: "- [ ] **New task** - Description\n  - Subtask details"
```

### How to Complete a Task

1. Fetch the Admin/Legal page
2. Find the task in "Active Tasks"
3. Move it to "Completed Tasks" section with `[x]` checked

```
notion_notion-update-page:
  page_id: "$NOTION_ADMIN_LEGAL_PAGE_ID"
  command: "replace_content_range"
  selection_with_ellipsis: "- [ ] **Task name**...details"
  new_str: ""  # Remove from Active

# Then add to Completed:
notion_notion-update-page:
  page_id: "$NOTION_ADMIN_LEGAL_PAGE_ID"
  command: "insert_content_after"
  selection_with_ellipsis: "## Completed Tasks"
  new_str: "\n- [x] **Task name** - Done [date]"
```

### How to Add Subtasks

When researching a task reveals subtasks (like Gusto setup), add them nested:

```markdown
- [ ] **Main task**
  - [ ] Subtask 1
  - [ ] Subtask 2
  - Context: links, phone numbers, notes
```

### Task Categories

| Category    | Examples                                |
| ----------- | --------------------------------------- |
| Gusto Setup | Payroll, tax registration, workers comp |
| Stock/Legal | Share issuance, legal filings           |
| Tax         | Filings, registrations, deadlines       |
| Banking     | Mercury setup, account changes          |
| Compliance  | CA requirements, retirement plans       |

---

## First-Time Setup

If `.env` file is missing, run this flow:

1. Ask user for Notion page IDs
2. Create `.env` file:

```bash
cat > .opencode/skill/company-admin/.env << 'EOF'
NOTION_MCP_SKILLS_PAGE_ID=[user-provided]
NOTION_ADMIN_LEGAL_PAGE_ID=[user-provided]
NOTION_INVESTOR_CHEAT_SHEET_ID=[user-provided]
FIRSTBASE_DASHBOARD_URL=https://app.firstbase.io/company/OR5DEAF6/details
TEAM_CALENDAR_URL=https://cal.com/team/0finance/30
EOF
```

3. Verify by fetching a page
4. Confirm setup complete

Overview

This skill provides CLI-first access to company administrative records stored in Notion and guides updates to that data. It centralizes where to find company-level and personal admin items, enforces security rules, and automates common update patterns via predefined Notion fetch/update commands. It expects a gitignored .env file with Notion page IDs and external URLs.

How this skill works

The skill reads Notion page IDs from .opencode/skill/company-admin/.env and uses notion_notion-fetch commands to retrieve specific sections (Company Admin, Admin/Legal, Investor Cheat Sheet). When the user supplies new information, it issues notion_notion-update-page commands to insert, replace, or move content. It never stores sensitive data locally and will prompt the user to create the .env file if missing or incomplete.

When to use it

  • Retrieve company legal info (incorporation, officers, registered agent).
  • Update personal admin details (passport, addresses, stock status) stored in Admin/Legal.
  • Add, complete, or manage Admin Tasks tracked in the Admin/Legal page.
  • Answer investor questions using the Investor Cheat Sheet page.
  • Prepare form-filling by fetching current data without echoing sensitive values.

Best practices

  • Keep NOTION_* page IDs only in the .env file (gitignored).
  • Always fetch live Notion pages for accuracy; do not guess legal or financial details.
  • Never echo or log passport numbers, SSNs, or other sensitive identifiers in chat. Mask or summarize sensitive fields.
  • When updating, target the correct page and section using selection_with_ellipsis to avoid accidental overwrites.
  • Verify changes by fetching the page after update to confirm the content and placement.

Example use cases

  • "What is our registered address?" → fetch MCP Skills → Company Admin → Addresses.
  • "Update my home address" → update Admin/Legal page with new address entry, then verify.
  • Add a new admin task: insert a checklist item under ## Active Tasks on Admin/Legal.
  • Mark a task complete: move item from Active Tasks to Completed Tasks and add a timestamp.
  • Prepare investor Q&A by fetching the Investor Cheat Sheet page and summarizing non-sensitive answers.

FAQ

What if the .env file is missing or incomplete?

I will ask you to provide the required Notion page IDs (MCP Skills, Admin/Legal, optional Investor Cheat Sheet) and then create the .env at .opencode/skill/company-admin/.env for you.

Can this skill store sensitive data locally?

No. Page IDs are stored in a gitignored .env file, but sensitive personal data must never be cached or echoed; fetch directly from Notion and redact sensitive fields in responses.