company-admin

Original🇺🇸 English
Translated

Access and update company administrative information stored in Notion

1installs
Added on

NPX Install

npx skill4agent add different-ai/agent-bank company-admin

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 TypeStore In
Personal details (passport, DOB, citizenship)Admin/Legal page
Personal addresses (home, mailing)Admin/Legal page
Stock/shares statusAdmin/Legal page
Company details (legal name, state, industry)MCP Skills → Company Admin
Officers/directors/shareholdersMCP Skills → Company Admin
Company addresses (registered agent, bank)MCP Skills → Company Admin
Service providers (Firstbase, Mercury)MCP Skills → Company Admin
Investor Q&AInvestor 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

TaskAction
"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

CategoryExamples
Gusto SetupPayroll, tax registration, workers comp
Stock/LegalShare issuance, legal filings
TaxFilings, registrations, deadlines
BankingMercury setup, account changes
ComplianceCA 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
  1. Verify by fetching a page
  2. Confirm setup complete