Skip to main content

EGI-SOP Documentation Site Implementation Plan

For agentic workers: REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (- [ ]) syntax for tracking.

Goal: Build a comprehensive internal documentation site for EGI using Docusaurus, migrating content from egi-engine and egi-ci:cd while applying EGI branding and updating all tool references.

Architecture: Docusaurus-based static site with 12 main documentation sections, blog for announcements, custom EGI branding (cream/navy color scheme), local search, and GitOps deployment to Vercel. Content migrated from existing repos with tool stack updates.

Tech Stack: Docusaurus v3, React, Node.js 18+, npm, Vercel, Git


File Structure

This project will create the following structure:

egi-sop/
├── package.json # Dependencies and scripts
├── package-lock.json # Lockfile
├── docusaurus.config.js # Main Docusaurus config
├── sidebars.js # Sidebar navigation config
├── README.md # Project documentation
├── .gitignore # Git ignore rules
├── static/
│ ├── img/
│ │ └── logo.svg # EGI logo (placeholder)
│ └── .gitkeep
├── src/
│ ├── css/
│ │ └── custom.css # Custom branding styles
│ ├── components/
│ │ └── .gitkeep
│ └── pages/
│ └── index.js # Custom homepage
├── blog/
│ ├── 2026-03-25-welcome.md # Initial blog post
│ └── authors.yml # Blog authors
├── docs/
│ ├── intro.md # Site introduction
│ ├── company-operations/
│ │ ├── index.md
│ │ ├── communication-standards.md
│ │ ├── slack-conventions.md
│ │ ├── ownership-model.md
│ │ ├── documentation-standards.md
│ │ └── workflow-rules.md
│ ├── engineering-standards/
│ │ ├── index.md
│ │ ├── repo-conventions.md # From egi-ci:cd
│ │ ├── development-workflow.md
│ │ ├── approval-gates.md
│ │ ├── release-procedures.md
│ │ ├── rollback-procedures.md
│ │ ├── documentation-requirements.md
│ │ ├── ai-assisted-development.md
│ │ ├── architecture.md # From egi-ci:cd
│ │ ├── decisions/ # ADRs from egi-ci:cd
│ │ ├── ci-cd/ # From egi-ci:cd
│ │ └── integrations/ # From egi-engine
│ ├── product-operations/
│ │ ├── index.md
│ │ ├── product-lifecycle.md
│ │ ├── launch-checklist.md
│ │ ├── release-checklist.md
│ │ ├── analytics-instrumentation.md
│ │ ├── feature-flags.md
│ │ └── support-ownership.md
│ ├── client-delivery/
│ │ ├── index.md
│ │ ├── onboarding-workflow.md
│ │ ├── documentation-expectations.md
│ │ ├── handoff-procedures.md
│ │ ├── deployment-standards.md
│ │ ├── ownership-model.md
│ │ └── support-model.md
│ ├── sku-standards/
│ │ ├── index.md # From egi-engine
│ │ ├── naming-conventions.md
│ │ ├── platform-identifiers.md
│ │ ├── system-types.md
│ │ ├── release-conventions.md
│ │ ├── examples.md
│ │ ├── tooling.md
│ │ └── update-process.md
│ ├── pricing-standards/
│ │ ├── index.md
│ │ ├── pricing-methodology.md
│ │ ├── estimation-standards.md
│ │ ├── packaging-rules.md
│ │ ├── stripe-integration.md
│ │ ├── calculator-reference.md
│ │ └── pricing-tiers.md
│ ├── tooling-stack/
│ │ ├── index.md
│ │ ├── slack.md
│ │ ├── erpnext.md
│ │ ├── posthog.md
│ │ ├── cloudflare.md
│ │ ├── uptime-kuma.md
│ │ ├── crowdsec.md
│ │ ├── docusaurus.md
│ │ ├── vercel.md
│ │ ├── penpot.md
│ │ └── stripe.md
│ ├── auth-access/
│ │ ├── index.md
│ │ ├── auth-patterns.md
│ │ ├── access-expectations.md
│ │ ├── documenting-auth.md
│ │ ├── account-provisioning.md
│ │ └── future-planning.md
│ ├── monitoring-incident/
│ │ ├── index.md
│ │ ├── monitoring-standards.md
│ │ ├── health-checks.md
│ │ ├── alert-routing.md
│ │ ├── outage-response.md
│ │ ├── degraded-service.md
│ │ ├── rollback-procedures.md
│ │ ├── incident-response.md
│ │ ├── postmortem-template.md
│ │ └── runbooks/ # From egi-engine
│ ├── onboarding-offboarding/
│ │ ├── index.md
│ │ ├── employee-setup.md
│ │ ├── account-access.md
│ │ ├── tools-required.md
│ │ ├── documentation-expectations.md
│ │ └── offboarding-procedures.md
│ ├── migration-archival/
│ │ ├── index.md
│ │ ├── system-migration.md
│ │ ├── domain-cutover.md
│ │ ├── backup-verification.md
│ │ ├── rollback-planning.md
│ │ ├── legacy-labeling.md
│ │ └── archival-procedures.md
│ └── reference-library/
│ ├── index.md
│ ├── glossary.md
│ ├── naming-conventions.md
│ ├── metadata-schema.md
│ ├── links.md
│ ├── templates/
│ │ ├── sop-template.md
│ │ ├── system-profile-template.md
│ │ ├── execution-brief-template.md
│ │ ├── incident-report-template.md
│ │ ├── migration-checklist.md
│ │ ├── domain-cutover-checklist.md
│ │ ├── repo-audit-checklist.md
│ │ ├── product-launch-checklist.md
│ │ ├── client-onboarding-checklist.md
│ │ └── uptime-monitoring-checklist.md
│ └── checklists/
│ └── .gitkeep

Phase 1: Project Initialization

Task 1: Initialize Docusaurus Project

Files:

  • Create: package.json

  • Create: docusaurus.config.js

  • Create: sidebars.js

  • Create: .gitignore

  • Step 1: Initialize Docusaurus using npx

Run: npx create-docusaurus@latest . classic --typescript false

Expected: Docusaurus project created with default structure

Note: Run this in the /Users/elliottgodwin/Developer/egi-sop directory

  • Step 2: Verify installation

Run: npm run start

Expected: Dev server starts at http://localhost:3000 with default Docusaurus site

  • Step 3: Stop dev server

Press: Ctrl+C

Expected: Server stops

  • Step 4: Remove default content

Run:

rm -rf blog/* docs/*
mkdir -p blog docs

Expected: Default blog and docs content removed

  • Step 5: Commit initial setup
git add .
git commit -m "chore: initialize Docusaurus project

- Install Docusaurus v3 with classic preset
- Remove default content
- Prepare for custom structure

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>"

Task 2: Configure Docusaurus for EGI

Files:

  • Modify: docusaurus.config.js

  • Step 1: Update docusaurus.config.js with EGI configuration

// @ts-check
// Note: type annotations allow type checking and IDEs autocompletion

const lightCodeTheme = require('prism-react-renderer/themes/github');
const darkCodeTheme = require('prism-react-renderer/themes/dracula');

/** @type {import('@docusaurus/types').Config} */
const config = {
title: 'EGI SOP',
tagline: 'Internal Standards & Operations Library',
favicon: 'img/favicon.ico',

url: 'https://sop.egintegrations.com',
baseUrl: '/',

organizationName: 'egintegrations',
projectName: 'egi-sop',

onBrokenLinks: 'throw',
onBrokenMarkdownLinks: 'warn',

i18n: {
defaultLocale: 'en',
locales: ['en'],
},

presets: [
[
'classic',
/** @type {import('@docusaurus/preset-classic').Options} */
({
docs: {
sidebarPath: require.resolve('./sidebars.js'),
editUrl: undefined, // Remove edit links for internal docs
},
blog: {
showReadingTime: true,
blogTitle: 'SOP Changelog',
blogDescription: 'Updates and announcements for EGI standard operating procedures',
postsPerPage: 10,
blogSidebarTitle: 'Recent updates',
blogSidebarCount: 'ALL',
},
theme: {
customCss: require.resolve('./src/css/custom.css'),
},
}),
],
],

themeConfig:
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */
({
image: 'img/social-card.png',
navbar: {
title: 'EGI SOP',
logo: {
alt: 'EGI Logo',
src: 'img/logo.svg',
},
items: [
{
type: 'docSidebar',
sidebarId: 'docsSidebar',
position: 'left',
label: 'Documentation',
},
{to: '/blog', label: 'Changelog', position: 'left'},
],
},
footer: {
style: 'dark',
links: [
{
title: 'Documentation',
items: [
{
label: 'Company Operations',
to: '/docs/company-operations',
},
{
label: 'Engineering Standards',
to: '/docs/engineering-standards',
},
{
label: 'Tooling Stack',
to: '/docs/tooling-stack',
},
],
},
{
title: 'Resources',
items: [
{
label: 'Templates',
to: '/docs/reference-library/templates',
},
{
label: 'Glossary',
to: '/docs/reference-library/glossary',
},
{
label: 'Changelog',
to: '/blog',
},
],
},
],
copyright: `Copyright © ${new Date().getFullYear()} EGIntegrations. Internal use only.`,
},
prism: {
theme: lightCodeTheme,
darkTheme: darkCodeTheme,
additionalLanguages: ['bash', 'python', 'javascript', 'typescript', 'yaml', 'json'],
},
}),

plugins: [
[
require.resolve("@cmfcmf/docusaurus-search-local"),
{
indexDocs: true,
indexBlog: true,
indexPages: false,
language: "en",
},
],
],
};

module.exports = config;
  • Step 2: Install local search plugin

Run: npm install --save @cmfcmf/docusaurus-search-local

Expected: Search plugin installed successfully

  • Step 3: Verify configuration

Run: npm run build

Expected: Build completes without errors

  • Step 4: Commit configuration
git add docusaurus.config.js package.json package-lock.json
git commit -m "feat: configure Docusaurus for EGI

- Set site title, URL, and metadata
- Configure navbar and footer
- Add local search plugin
- Set up blog for changelog
- Disable edit links for internal docs

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>"

Task 3: Configure Sidebar Navigation

Files:

  • Modify: sidebars.js

  • Step 1: Create comprehensive sidebar structure

/**
* Creating a sidebar enables you to:
- create an ordered group of docs
- render a sidebar for each doc of that group
- provide next/previous navigation

The sidebars can be generated from the filesystem, or explicitly defined here.

Create as many sidebars as you want.
*/

// @ts-check

/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */
const sidebars = {
docsSidebar: [
'intro',
{
type: 'category',
label: 'Company Operations',
link: {
type: 'doc',
id: 'company-operations/index',
},
collapsed: false,
items: [
'company-operations/communication-standards',
'company-operations/slack-conventions',
'company-operations/ownership-model',
'company-operations/documentation-standards',
'company-operations/workflow-rules',
],
},
{
type: 'category',
label: 'Engineering Standards',
link: {
type: 'doc',
id: 'engineering-standards/index',
},
collapsed: false,
items: [
'engineering-standards/repo-conventions',
'engineering-standards/development-workflow',
'engineering-standards/approval-gates',
'engineering-standards/release-procedures',
'engineering-standards/rollback-procedures',
'engineering-standards/documentation-requirements',
'engineering-standards/ai-assisted-development',
'engineering-standards/architecture',
{
type: 'category',
label: 'Architecture Decisions',
link: {
type: 'generated-index',
title: 'Architecture Decision Records',
description: 'Historical architecture decisions and their context.',
},
items: [
{
type: 'autogenerated',
dirName: 'engineering-standards/decisions',
},
],
},
{
type: 'category',
label: 'CI/CD',
link: {
type: 'generated-index',
title: 'CI/CD Documentation',
description: 'Golden path for continuous integration and deployment.',
},
items: [
{
type: 'autogenerated',
dirName: 'engineering-standards/ci-cd',
},
],
},
{
type: 'category',
label: 'Integrations',
link: {
type: 'generated-index',
title: 'Integration Patterns',
description: 'Provider adapters and integration documentation.',
},
items: [
{
type: 'autogenerated',
dirName: 'engineering-standards/integrations',
},
],
},
],
},
{
type: 'category',
label: 'Product Operations',
link: {
type: 'doc',
id: 'product-operations/index',
},
collapsed: true,
items: [
'product-operations/product-lifecycle',
'product-operations/launch-checklist',
'product-operations/release-checklist',
'product-operations/analytics-instrumentation',
'product-operations/feature-flags',
'product-operations/support-ownership',
],
},
{
type: 'category',
label: 'Client Delivery',
link: {
type: 'doc',
id: 'client-delivery/index',
},
collapsed: true,
items: [
'client-delivery/onboarding-workflow',
'client-delivery/documentation-expectations',
'client-delivery/handoff-procedures',
'client-delivery/deployment-standards',
'client-delivery/ownership-model',
'client-delivery/support-model',
],
},
{
type: 'category',
label: 'SKU Standards',
link: {
type: 'doc',
id: 'sku-standards/index',
},
collapsed: true,
items: [
'sku-standards/naming-conventions',
'sku-standards/platform-identifiers',
'sku-standards/system-types',
'sku-standards/release-conventions',
'sku-standards/examples',
'sku-standards/tooling',
'sku-standards/update-process',
],
},
{
type: 'category',
label: 'Pricing Standards',
link: {
type: 'doc',
id: 'pricing-standards/index',
},
collapsed: true,
items: [
'pricing-standards/pricing-methodology',
'pricing-standards/estimation-standards',
'pricing-standards/packaging-rules',
'pricing-standards/stripe-integration',
'pricing-standards/calculator-reference',
'pricing-standards/pricing-tiers',
],
},
{
type: 'category',
label: 'Tooling Stack',
link: {
type: 'doc',
id: 'tooling-stack/index',
},
collapsed: true,
items: [
'tooling-stack/slack',
'tooling-stack/erpnext',
'tooling-stack/posthog',
'tooling-stack/cloudflare',
'tooling-stack/uptime-kuma',
'tooling-stack/crowdsec',
'tooling-stack/docusaurus',
'tooling-stack/vercel',
'tooling-stack/penpot',
'tooling-stack/stripe',
],
},
{
type: 'category',
label: 'Auth & Access',
link: {
type: 'doc',
id: 'auth-access/index',
},
collapsed: true,
items: [
'auth-access/auth-patterns',
'auth-access/access-expectations',
'auth-access/documenting-auth',
'auth-access/account-provisioning',
'auth-access/future-planning',
],
},
{
type: 'category',
label: 'Monitoring & Incident Response',
link: {
type: 'doc',
id: 'monitoring-incident/index',
},
collapsed: true,
items: [
'monitoring-incident/monitoring-standards',
'monitoring-incident/health-checks',
'monitoring-incident/alert-routing',
'monitoring-incident/outage-response',
'monitoring-incident/degraded-service',
'monitoring-incident/rollback-procedures',
'monitoring-incident/incident-response',
'monitoring-incident/postmortem-template',
{
type: 'category',
label: 'Runbooks',
link: {
type: 'generated-index',
title: 'Operational Runbooks',
description: 'Step-by-step operational procedures.',
},
items: [
{
type: 'autogenerated',
dirName: 'monitoring-incident/runbooks',
},
],
},
],
},
{
type: 'category',
label: 'Onboarding & Offboarding',
link: {
type: 'doc',
id: 'onboarding-offboarding/index',
},
collapsed: true,
items: [
'onboarding-offboarding/employee-setup',
'onboarding-offboarding/account-access',
'onboarding-offboarding/tools-required',
'onboarding-offboarding/documentation-expectations',
'onboarding-offboarding/offboarding-procedures',
],
},
{
type: 'category',
label: 'Migration & Archival',
link: {
type: 'doc',
id: 'migration-archival/index',
},
collapsed: true,
items: [
'migration-archival/system-migration',
'migration-archival/domain-cutover',
'migration-archival/backup-verification',
'migration-archival/rollback-planning',
'migration-archival/legacy-labeling',
'migration-archival/archival-procedures',
],
},
{
type: 'category',
label: 'Reference Library',
link: {
type: 'doc',
id: 'reference-library/index',
},
collapsed: true,
items: [
'reference-library/glossary',
'reference-library/naming-conventions',
'reference-library/metadata-schema',
'reference-library/links',
{
type: 'category',
label: 'Templates',
link: {
type: 'generated-index',
title: 'Document Templates',
description: 'Reusable templates for SOPs, reports, and checklists.',
},
items: [
{
type: 'autogenerated',
dirName: 'reference-library/templates',
},
],
},
],
},
],
};

module.exports = sidebars;
  • Step 2: Verify sidebar configuration

Run: npm run build

Expected: Build succeeds (will warn about missing docs, expected at this stage)

  • Step 3: Commit sidebar configuration
git add sidebars.js
git commit -m "feat: configure comprehensive sidebar navigation

- 12 main documentation sections
- Collapsible categories
- Auto-generated sections for ADRs, CI/CD, integrations, runbooks
- Reference library with templates

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>"

Phase 2: Branding & Custom Styling

Task 4: Apply EGI Branding

Files:

  • Modify: src/css/custom.css

  • Create: static/img/logo.svg (placeholder)

  • Step 1: Create custom CSS with EGI brand colors

/**
* EGI SOP Custom Styles
*
* Brand Colors:
* - Primary: #F5F1E8 (cream/beige)
* - Secondary: #1A1D23 (dark navy/charcoal)
* - Accent: #0096D6 (blue)
*/

:root {
/* Brand Colors */
--egi-cream: #F5F1E8;
--egi-navy: #1A1D23;
--egi-blue: #0096D6;
--egi-orange: #FF6B35;

/* Light Mode */
--ifm-color-primary: #0096D6;
--ifm-color-primary-dark: #0085C1;
--ifm-color-primary-darker: #007DB5;
--ifm-color-primary-darkest: #006795;
--ifm-color-primary-light: #00A7EB;
--ifm-color-primary-lighter: #00AFF7;
--ifm-color-primary-lightest: #1FC3FF;

--ifm-background-color: #F5F1E8;
--ifm-background-surface-color: #FFFFFF;

--ifm-font-color-base: #1A1D23;
--ifm-heading-color: #1A1D23;

--ifm-link-color: #0096D6;
--ifm-link-hover-color: #007DB5;

--ifm-navbar-background-color: #1A1D23;
--ifm-navbar-link-color: #F5F1E8;
--ifm-navbar-link-hover-color: #0096D6;

--ifm-footer-background-color: #1A1D23;
--ifm-footer-color: #F5F1E8;
--ifm-footer-link-color: #0096D6;
--ifm-footer-link-hover-color: #00A7EB;

/* Card styling */
--ifm-card-background-color: #FFFFFF;
--ifm-card-border-radius: 8px;

/* Code blocks */
--ifm-code-background: #F5F5F5;
--ifm-code-border-radius: 4px;

/* Fonts */
--ifm-font-family-base: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
--ifm-font-family-monospace: 'Fira Code', 'Monaco', 'Consolas', 'Liberation Mono', 'Courier New', monospace;
--ifm-heading-font-weight: 700;
}

/* Dark mode */
[data-theme='dark'] {
--ifm-color-primary: #0096D6;
--ifm-color-primary-dark: #0085C1;
--ifm-color-primary-darker: #007DB5;
--ifm-color-primary-darkest: #006795;
--ifm-color-primary-light: #00A7EB;
--ifm-color-primary-lighter: #00AFF7;
--ifm-color-primary-lightest: #1FC3FF;

--ifm-background-color: #1A1D23;
--ifm-background-surface-color: #242830;

--ifm-font-color-base: #F5F1E8;
--ifm-heading-color: #F5F1E8;

--ifm-link-color: #00A7EB;
--ifm-link-hover-color: #1FC3FF;

--ifm-navbar-background-color: #1A1D23;
--ifm-navbar-link-color: #F5F1E8;
--ifm-navbar-link-hover-color: #00A7EB;

--ifm-card-background-color: #242830;

--ifm-code-background: #2D3139;
}

/* Typography improvements */
h1, h2, h3, h4, h5, h6 {
font-weight: var(--ifm-heading-font-weight);
margin-bottom: 1rem;
}

/* Card enhancements */
.card {
border-radius: var(--ifm-card-border-radius);
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
transition: box-shadow 0.3s ease;
}

.card:hover {
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
}

/* Button styling */
.button {
border-radius: 6px;
font-weight: 600;
transition: all 0.2s ease;
}

.button:hover {
transform: translateY(-1px);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.button--primary {
background-color: var(--ifm-color-primary);
border-color: var(--ifm-color-primary);
}

.button--primary:hover {
background-color: var(--ifm-color-primary-dark);
border-color: var(--ifm-color-primary-dark);
}

/* Admonition customization */
.admonition {
border-radius: 6px;
margin-bottom: 1.5rem;
}

/* Code block improvements */
.prism-code {
border-radius: var(--ifm-code-border-radius);
}

/* Table of contents */
.table-of-contents {
font-size: 0.875rem;
}

.table-of-contents__link {
color: var(--ifm-font-color-base);
}

.table-of-contents__link:hover,
.table-of-contents__link--active {
color: var(--ifm-color-primary);
font-weight: 600;
}

/* Navbar customization */
.navbar {
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.navbar__title {
font-weight: 700;
}

/* Footer customization */
.footer {
padding: 2rem 0;
}

.footer__title {
font-weight: 700;
color: #F5F1E8;
}

/* Pagination */
.pagination-nav__link {
border-radius: 6px;
border: 1px solid var(--ifm-color-emphasis-300);
}

.pagination-nav__link:hover {
border-color: var(--ifm-color-primary);
background-color: var(--ifm-color-primary-lightest);
}

/* Breadcrumbs */
.breadcrumbs__link {
color: var(--ifm-color-emphasis-600);
}

.breadcrumbs__link:hover {
color: var(--ifm-color-primary);
}

/* Search bar */
.DocSearch-Button {
border-radius: 6px;
}

/* Responsive adjustments */
@media (max-width: 996px) {
.navbar__item {
font-size: 0.9rem;
}
}
  • Step 2: Create placeholder logo
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="20" cy="20" r="18" fill="#0096D6"/>
<text x="50%" y="50%" text-anchor="middle" dy=".3em" fill="#F5F1E8" font-family="Arial, sans-serif" font-size="20" font-weight="bold">EGI</text>
</svg>

Save to: static/img/logo.svg

  • Step 3: Import Google Fonts in custom.css

Add to top of src/css/custom.css:

/* Import Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');
  • Step 4: Test branding

Run: npm run start

Expected: Site loads with EGI cream background, navy navbar, blue accents

  • Step 5: Commit branding
git add src/css/custom.css static/img/logo.svg
git commit -m "feat: apply EGI branding and custom styles

- Cream (#F5F1E8) and navy (#1A1D23) color scheme
- Blue (#0096D6) accent color
- Inter font family for headings and body
- Custom card, button, and admonition styling
- Dark mode support with inverted colors
- Placeholder EGI logo

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>"

Task 5: Create Custom Homepage

Files:

  • Create: src/pages/index.js

  • Step 1: Create React homepage component

import React from 'react';
import clsx from 'clsx';
import Link from '@docusaurus/Link';
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
import Layout from '@theme/Layout';
import styles from './index.module.css';

function HomepageHeader() {
const {siteConfig} = useDocusaurusContext();
return (
<header className={clsx('hero hero--primary', styles.heroBanner)}>
<div className="container">
<h1 className="hero__title">{siteConfig.title}</h1>
<p className="hero__subtitle">{siteConfig.tagline}</p>
<div className={styles.buttons}>
<Link
className="button button--secondary button--lg"
to="/docs/intro">
Get Started
</Link>
<Link
className="button button--outline button--secondary button--lg"
to="/docs/tooling-stack">
Tooling Stack
</Link>
</div>
</div>
</header>
);
}

function FeatureSection() {
const features = [
{
title: 'Company Operations',
icon: '🏢',
description: 'Internal communication, ownership models, and workflow standards.',
link: '/docs/company-operations',
},
{
title: 'Engineering Standards',
icon: '⚙️',
description: 'Development workflows, CI/CD, architecture decisions, and release procedures.',
link: '/docs/engineering-standards',
},
{
title: 'Product Operations',
icon: '🚀',
description: 'Product lifecycle, launch checklists, analytics, and feature flag management.',
link: '/docs/product-operations',
},
{
title: 'Client Delivery',
icon: '🤝',
description: 'Onboarding workflows, handoff procedures, and support models.',
link: '/docs/client-delivery',
},
{
title: 'SKU Standards',
icon: '🏷️',
description: 'Standardized SKU format, naming conventions, and versioning.',
link: '/docs/sku-standards',
},
{
title: 'Pricing Standards',
icon: '💰',
description: 'Pricing methodology, estimation standards, and Stripe integration.',
link: '/docs/pricing-standards',
},
{
title: 'Tooling Stack',
icon: '🛠️',
description: 'Documentation for Slack, ERPNext, PostHog, Cloudflare, and more.',
link: '/docs/tooling-stack',
},
{
title: 'Monitoring & Incidents',
icon: '📊',
description: 'Uptime monitoring, incident response, and operational runbooks.',
link: '/docs/monitoring-incident',
},
{
title: 'Reference Library',
icon: '📚',
description: 'Templates, checklists, glossary, and quick references.',
link: '/docs/reference-library',
},
];

return (
<section className={styles.features}>
<div className="container">
<h2 className={styles.sectionTitle}>Documentation Sections</h2>
<div className={styles.featureGrid}>
{features.map((feature, idx) => (
<Link
key={idx}
to={feature.link}
className={clsx('card', styles.featureCard)}>
<div className={styles.featureIcon}>{feature.icon}</div>
<h3>{feature.title}</h3>
<p>{feature.description}</p>
</Link>
))}
</div>
</div>
</section>
);
}

function QuickLinks() {
return (
<section className={styles.quickLinks}>
<div className="container">
<h2 className={styles.sectionTitle}>Quick Links</h2>
<div className={styles.linkGrid}>
<Link to="/docs/reference-library/templates" className="card">
<h3>📝 Templates</h3>
<p>SOP templates, checklists, and execution briefs</p>
</Link>
<Link to="/blog" className="card">
<h3>📰 Changelog</h3>
<p>Latest updates and announcements</p>
</Link>
<Link to="/docs/reference-library/glossary" className="card">
<h3>📖 Glossary</h3>
<p>Company terminology and definitions</p>
</Link>
<Link to="/docs/tooling-stack" className="card">
<h3>🔧 Tools</h3>
<p>Complete tooling stack documentation</p>
</Link>
</div>
</div>
</section>
);
}

export default function Home() {
const {siteConfig} = useDocusaurusContext();
return (
<Layout
title={`${siteConfig.title}`}
description="EGI Internal Standards and Operations Library">
<HomepageHeader />
<main>
<FeatureSection />
<QuickLinks />
</main>
</Layout>
);
}
  • Step 2: Create CSS module for homepage

Create: src/pages/index.module.css

.heroBanner {
padding: 4rem 0;
text-align: center;
position: relative;
overflow: hidden;
background: linear-gradient(135deg, var(--egi-navy) 0%, #2A2F38 100%);
}

.heroBanner h1 {
font-size: 3rem;
color: var(--egi-cream);
margin-bottom: 1rem;
}

.heroBanner p {
font-size: 1.5rem;
color: var(--egi-cream);
margin-bottom: 2rem;
}

.buttons {
display: flex;
align-items: center;
justify-content: center;
gap: 1rem;
flex-wrap: wrap;
}

.features {
padding: 4rem 0;
background-color: var(--ifm-background-color);
}

.sectionTitle {
text-align: center;
font-size: 2.5rem;
margin-bottom: 3rem;
color: var(--ifm-heading-color);
}

.featureGrid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 2rem;
margin-top: 2rem;
}

.featureCard {
text-decoration: none;
color: inherit;
padding: 2rem;
transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.featureCard:hover {
transform: translateY(-4px);
text-decoration: none;
color: inherit;
}

.featureIcon {
font-size: 3rem;
margin-bottom: 1rem;
}

.featureCard h3 {
margin-bottom: 0.5rem;
color: var(--ifm-heading-color);
}

.featureCard p {
font-size: 0.95rem;
color: var(--ifm-color-emphasis-700);
margin: 0;
}

.quickLinks {
padding: 4rem 0;
background-color: var(--ifm-background-surface-color);
}

.linkGrid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
gap: 1.5rem;
margin-top: 2rem;
}

.linkGrid .card {
padding: 1.5rem;
text-decoration: none;
color: inherit;
transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.linkGrid .card:hover {
transform: translateY(-2px);
text-decoration: none;
color: inherit;
}

.linkGrid h3 {
font-size: 1.25rem;
margin-bottom: 0.5rem;
color: var(--ifm-heading-color);
}

.linkGrid p {
font-size: 0.9rem;
color: var(--ifm-color-emphasis-700);
margin: 0;
}

@media (max-width: 768px) {
.heroBanner h1 {
font-size: 2rem;
}

.heroBanner p {
font-size: 1.2rem;
}

.featureGrid {
grid-template-columns: 1fr;
}

.linkGrid {
grid-template-columns: 1fr;
}
}
  • Step 3: Test homepage

Run: npm run start

Expected: Homepage displays with hero banner, feature grid, and quick links

  • Step 4: Commit homepage
git add src/pages/
git commit -m "feat: create custom EGI homepage

- Hero banner with navy gradient background
- Feature grid showing all 12 documentation sections
- Quick links section for common resources
- Responsive grid layout
- Card-based design matching EGI branding

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>"

Phase 3: Core Documentation Structure

Task 6: Create Introduction and Core Index Pages

Files:

  • Create: docs/intro.md

  • Create: docs/company-operations/index.md

  • Create: docs/engineering-standards/index.md

  • Create: docs/product-operations/index.md

  • Create: docs/client-delivery/index.md

  • Create: docs/sku-standards/index.md

  • Create: docs/pricing-standards/index.md

  • Create: docs/tooling-stack/index.md

  • Create: docs/auth-access/index.md

  • Create: docs/monitoring-incident/index.md

  • Create: docs/onboarding-offboarding/index.md

  • Create: docs/migration-archival/index.md

  • Create: docs/reference-library/index.md

  • Step 1: Create site introduction

docs/intro.md:

---
title: Welcome to EGI SOP
description: Internal standards and operations library for EGIntegrations
sidebar_position: 1
last_updated: 2026-03-25
---

# Welcome to EGI SOP

Welcome to the EGIntegrations Standard Operating Procedures and Internal Documentation Library. This site serves as the central source of truth for company operations, engineering standards, client delivery processes, and operational workflows.

## Purpose

EGI-SOP consolidates our scattered documentation into a single, well-organized, maintainable system that:

- **Centralizes Knowledge**: All company standards, procedures, and documentation in one place
- **Ensures Consistency**: Standardized formats and templates across all documentation
- **Enables Collaboration**: Easy contribution through GitOps workflow
- **Maintains History**: Version-controlled documentation with full change history
- **Supports Growth**: Scalable structure designed for long-term evolution

## Documentation Sections

### [Company Operations](/docs/company-operations)
Internal communication standards, Slack conventions, ownership models, and workflow rules.

### [Engineering Standards](/docs/engineering-standards)
Development workflows, CI/CD golden path, architecture decisions, and release procedures.

### [Product Operations](/docs/product-operations)
Product lifecycle management, launch checklists, analytics instrumentation, and feature flags.

### [Client Delivery](/docs/client-delivery)
Client onboarding workflows, handoff procedures, deployment standards, and support models.

### [SKU Standards](/docs/sku-standards)
Standardized SKU format, naming conventions, platform identifiers, and versioning rules.

### [Pricing Standards](/docs/pricing-standards)
Pricing methodology, estimation standards, packaging rules, and Stripe integration.

### [Tooling Stack](/docs/tooling-stack)
Complete documentation for all tools in the EGI stack: Slack, ERPNext, PostHog, Cloudflare, Uptime Kuma, CrowdSec, and more.

### [Auth & Access](/docs/auth-access)
Authentication patterns, access policies, account provisioning, and future consolidation plans.

### [Monitoring & Incident Response](/docs/monitoring-incident)
Monitoring standards, incident response procedures, operational runbooks, and postmortem templates.

### [Onboarding & Offboarding](/docs/onboarding-offboarding)
Employee lifecycle procedures, account provisioning, tool access, and handoff workflows.

### [Migration & Archival](/docs/migration-archival)
System migration procedures, domain cutover processes, backup verification, and archival standards.

### [Reference Library](/docs/reference-library)
Templates, checklists, glossary, naming conventions, and quick reference materials.

## Our Tooling Stack

EGI uses a consolidated tooling stack for maximum efficiency:

- **Slack** - Internal communication and collaboration
- **ERPNext** - ERP and business process management
- **PostHog** - Product analytics and instrumentation
- **Cloudflare** - DNS, security, and CDN
- **Uptime Kuma** - Uptime monitoring and alerting
- **CrowdSec** - Intrusion detection for cloud instances
- **Docusaurus** - This documentation system
- **Vercel** - Deployment and hosting
- **Penpot** - Design and prototyping
- **Stripe** - Payment processing

[Learn more about our tooling stack →](/docs/tooling-stack)

## Contributing

This documentation follows a GitOps workflow. All changes go through pull requests and are reviewed before merging.

**Quick Start:**
1. Clone the repository
2. Create a feature branch
3. Make your changes
4. Test locally with `npm run start`
5. Open a pull request
6. Team reviews and merges

See the [README](https://github.com/egintegrations/egi-sop) for detailed contribution guidelines.

## Getting Help

- **Slack**: #egi-sop for questions and discussions
- **GitHub Issues**: Report documentation bugs or request improvements
- **Templates**: Use our [templates](/docs/reference-library/templates) for creating new docs

## Recent Updates

Check the [Changelog](/blog) for recent updates and announcements.

---

*This documentation is for internal EGIntegrations use only.*
  • Step 2: Create company operations index

Create directory and file:

mkdir -p docs/company-operations

docs/company-operations/index.md:

---
title: Company Operations
description: Internal company operation standards and expectations
sidebar_position: 1
last_updated: 2026-03-25
---

# Company Operations

Company Operations defines how we work together as a team, communicate effectively, maintain ownership and accountability, and document our work. These standards ensure consistency, clarity, and efficiency across all internal operations.

## Overview

Our operational philosophy centers on:

- **Clear Communication**: Transparent, timely, and structured communication
- **Defined Ownership**: Every system, project, and process has a clear owner
- **Documentation First**: If it's not documented, it doesn't exist
- **Continuous Improvement**: Regular review and refinement of processes
- **Team Collaboration**: Leverage collective knowledge while maintaining individual accountability

## Key Principles

### Transparency
All team members have access to the information they need to do their jobs effectively. We default to open communication and only restrict access when necessary for security or privacy.

### Ownership
Every deliverable, system, and process has a designated owner responsible for its success, maintenance, and evolution.

### Documentation
We document decisions, processes, and systems to enable:
- Knowledge transfer
- Onboarding efficiency
- Process consistency
- Historical context
- Team scalability

### Asynchronous by Default
We prioritize asynchronous communication to:
- Respect different time zones and work schedules
- Enable thoughtful, well-documented responses
- Create searchable records of decisions
- Reduce meeting overhead

## Section Contents

### [Communication Standards](/docs/company-operations/communication-standards)
Expectations for internal communication, response times, escalation paths, and communication channels.

### [Slack Conventions](/docs/company-operations/slack-conventions)
Channel naming, threading rules, notification etiquette, and Slack best practices.

### [Ownership Model](/docs/company-operations/ownership-model)
How we define, assign, and manage ownership of projects, systems, and deliverables.

### [Documentation Standards](/docs/company-operations/documentation-standards)
Requirements and best practices for creating and maintaining documentation.

### [Workflow Rules](/docs/company-operations/workflow-rules)
Internal workflow standards, approval processes, and collaboration patterns.

## Related Documentation

- [Engineering Standards](/docs/engineering-standards) - Technical workflow standards
- [Tooling Stack](/docs/tooling-stack) - Documentation for communication tools
- [Onboarding & Offboarding](/docs/onboarding-offboarding) - Employee lifecycle procedures

## Changelog

- **2026-03-25**: Initial company operations documentation created
  • Step 3: Create remaining index files with similar structure

Due to space constraints, I'll provide the template structure. Each index should follow this pattern:

---
title: [Section Name]
description: [Brief description]
sidebar_position: [number]
last_updated: 2026-03-25
---

# [Section Name]

[2-3 paragraph overview of the section]

## Overview

[Key principles and philosophy]

## Section Contents

[List of pages in this section with brief descriptions]

## Related Documentation

[Links to related sections]

## Changelog

- **2026-03-25**: Initial [section name] documentation created

Create these files:

  • docs/engineering-standards/index.md

  • docs/product-operations/index.md

  • docs/client-delivery/index.md

  • docs/sku-standards/index.md

  • docs/pricing-standards/index.md

  • docs/tooling-stack/index.md

  • docs/auth-access/index.md

  • docs/monitoring-incident/index.md

  • docs/onboarding-offboarding/index.md

  • docs/migration-archival/index.md

  • docs/reference-library/index.md

  • Step 4: Verify build

Run: npm run build

Expected: Build succeeds with all index pages

  • Step 5: Commit core structure
git add docs/
git commit -m "feat: create core documentation structure

- Site introduction with overview and quick links
- Index pages for all 12 main sections
- Consistent frontmatter and structure
- Section overviews and content descriptions

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>"

Note: Due to the extensive nature of this implementation plan, I'll continue with abbreviated task descriptions for the remaining phases. Each task will follow the same detailed format with complete code blocks, verification steps, and commits.


Phase 4: Content Migration from egi-engine

Task 7: Migrate SKU Standards Documentation

Files:

  • Create: docs/sku-standards/naming-conventions.md

  • Create: docs/sku-standards/platform-identifiers.md

  • Create: docs/sku-standards/system-types.md

  • Create: docs/sku-standards/release-conventions.md

  • Create: docs/sku-standards/examples.md

  • Create: docs/sku-standards/tooling.md

  • Create: docs/sku-standards/update-process.md

  • Step 1: Migrate and update SKU standards index

Update docs/sku-standards/index.md with content from ~/Developer/egi-engine/standards/sku/README.md, updating tool references

  • Step 2: Create SKU naming conventions page

Extract format, components, and best practices into naming-conventions.md

  • Step 3: Create platform identifiers page

Extract platform codes table and add link to egi-engine repo for platforms.json

  • Step 4: Create system types page

Extract system type codes and add link to egi-engine repo for system_types.json

  • Step 5: Create remaining SKU pages

Create release-conventions.md, examples.md, tooling.md (with links to gen_sku.py and sku_audit.py), and update-process.md

  • Step 6: Verify SKU section

Run: npm run start and navigate to SKU Standards section

Expected: All pages render correctly with updated links

  • Step 7: Commit SKU migration
git add docs/sku-standards/
git commit -m "feat: migrate SKU standards from egi-engine

- Comprehensive SKU format documentation
- Platform identifiers and system types
- Links to gen_sku.py and sku_audit.py tools
- Best practices and examples
- CI/CD integration patterns

Migrated from: ~/Developer/egi-engine/standards/sku/

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>"

Task 8: Migrate Operational Runbooks

Files:

  • Create: docs/monitoring-incident/runbooks/ (directory)

  • Migrate all files from ~/Developer/egi-engine/docs/runbooks/

  • Step 1: Create runbooks directory

mkdir -p docs/monitoring-incident/runbooks
  • Step 2: Copy and update runbooks
cp ~/Developer/egi-engine/docs/runbooks/*.md docs/monitoring-incident/runbooks/
  • Step 3: Update runbooks with current tool references

Update each runbook to reference:

  • Uptime Kuma for monitoring

  • CrowdSec for security

  • Slack for alerts

  • PostHog for analytics

  • Step 4: Add frontmatter to each runbook

Add YAML frontmatter with title, description, last_updated

  • Step 5: Verify runbooks section

Run: npm run start and check runbooks in sidebar

Expected: All runbooks visible and navigable

  • Step 6: Commit runbooks
git add docs/monitoring-incident/runbooks/
git commit -m "feat: migrate operational runbooks from egi-engine

- Engine down procedures
- Deploy new engine
- Database backup and restore
- Bot operator operations
- Control center deployment
- Discovery, tasks, receipts, hello-engine setup

Updated with current tooling stack references.

Migrated from: ~/Developer/egi-engine/docs/runbooks/

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>"

Phase 5: Content Migration from egi-ci:cd

Task 9: Migrate Engineering Standards Documentation

Files:

  • Update: docs/engineering-standards/repo-conventions.md

  • Update: docs/engineering-standards/architecture.md

  • Create: docs/engineering-standards/decisions/ (ADRs)

  • Create: docs/engineering-standards/ci-cd/ (golden path docs)

  • Step 1: Copy repo structure doc

cp ~/Developer/egi-ci:cd/docs/repo-structure.md docs/engineering-standards/repo-conventions.md
  • Step 2: Update repo conventions

Add frontmatter and update references to current tooling

  • Step 3: Copy architecture doc
cp ~/Developer/egi-ci:cd/docs/architecture.md docs/engineering-standards/architecture.md
  • Step 4: Update architecture doc

Add frontmatter and update tool references

  • Step 5: Copy ADRs
mkdir -p docs/engineering-standards/decisions
cp -r ~/Developer/egi-ci:cd/docs/decisions/* docs/engineering-standards/decisions/
  • Step 6: Copy CI/CD docs
mkdir -p docs/engineering-standards/ci-cd
cp ~/Developer/egi-ci:cd/docs/how-to-bootstrap-new-project.md docs/engineering-standards/ci-cd/
cp ~/Developer/egi-ci:cd/docs/how-to-adapt-existing-project.md docs/engineering-standards/ci-cd/
cp ~/Developer/egi-ci:cd/docs/provider-adapters.md docs/engineering-standards/ci-cd/
  • Step 7: Update all migrated files

Add frontmatter and update tool references throughout

  • Step 8: Commit engineering standards migration
git add docs/engineering-standards/
git commit -m "feat: migrate engineering standards from egi-ci:cd

- Repository conventions and structure
- Architecture principles and patterns
- Architecture Decision Records (ADRs)
- CI/CD golden path documentation
- Project bootstrap and adaptation guides
- Provider adapter documentation

Updated with current tooling stack.

Migrated from: ~/Developer/egi-ci:cd/docs/

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>"

Phase 6: Create Content for Remaining Sections

Task 10: Create Company Operations Pages

Files:

  • Create: docs/company-operations/communication-standards.md

  • Create: docs/company-operations/slack-conventions.md

  • Create: docs/company-operations/ownership-model.md

  • Create: docs/company-operations/documentation-standards.md

  • Create: docs/company-operations/workflow-rules.md

  • Step 1: Create communication standards page

Document response times, escalation paths, communication channels (Slack as primary)

  • Step 2: Create Slack conventions page

Channel naming (e.g., #proj-, #team-, #alert-), threading rules, notification best practices

  • Step 3: Create ownership model page

RACI framework, assignment process, handoff procedures

  • Step 4: Create documentation standards page

Frontmatter requirements, markdown conventions, update frequency expectations

  • Step 5: Create workflow rules page

Approval processes, review cycles, collaboration patterns

  • Step 6: Commit company operations content
git add docs/company-operations/
git commit -m "feat: create company operations documentation

- Communication standards and expectations
- Slack channel conventions and etiquette
- Ownership model and accountability framework
- Documentation standards and requirements
- Internal workflow rules and processes

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>"

Task 11: Create Tooling Stack Documentation

Files:

  • Create: docs/tooling-stack/slack.md

  • Create: docs/tooling-stack/erpnext.md

  • Create: docs/tooling-stack/posthog.md

  • Create: docs/tooling-stack/cloudflare.md

  • Create: docs/tooling-stack/uptime-kuma.md

  • Create: docs/tooling-stack/crowdsec.md

  • Create: docs/tooling-stack/docusaurus.md

  • Create: docs/tooling-stack/vercel.md

  • Create: docs/tooling-stack/penpot.md

  • Create: docs/tooling-stack/stripe.md

  • Step 1: Create Slack documentation

Purpose, workspace organization, integrations, bot usage

  • Step 2: Create ERPNext documentation

ERP workflows, module usage, data entry standards

  • Step 3: Create PostHog documentation

Event tracking, feature flags, session replay, analytics dashboards

  • Step 4: Create Cloudflare documentation

DNS management, security settings, CDN configuration, Workers usage

  • Step 5: Create Uptime Kuma documentation

Monitor setup, alert configuration, Slack integration, dashboard access

  • Step 6: Create CrowdSec documentation

Installation on Linux instances, configuration, alert handling, ban management

  • Step 7: Create Docusaurus documentation

This site's architecture, contribution workflow, build/deploy process

  • Step 8: Create Vercel documentation

Deployment configuration, environment variables, preview deployments, domains

  • Step 9: Create Penpot documentation

Design workflow, file organization, collaboration, export procedures

  • Step 10: Create Stripe documentation

Payment integration patterns, webhook handling, testing, security best practices

  • Step 11: Commit tooling stack documentation
git add docs/tooling-stack/
git commit -m "feat: create comprehensive tooling stack documentation

- Slack: Communication and collaboration
- ERPNext: ERP and business processes
- PostHog: Analytics and feature flags
- Cloudflare: DNS, security, CDN
- Uptime Kuma: Monitoring and alerting
- CrowdSec: Intrusion detection
- Docusaurus: This documentation system
- Vercel: Deployment platform
- Penpot: Design tool
- Stripe: Payment processing

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>"

Task 12: Create Monitoring & Incident Response Pages

Files:

  • Create: docs/monitoring-incident/monitoring-standards.md

  • Create: docs/monitoring-incident/health-checks.md

  • Create: docs/monitoring-incident/alert-routing.md

  • Create: docs/monitoring-incident/outage-response.md

  • Create: docs/monitoring-incident/degraded-service.md

  • Create: docs/monitoring-incident/rollback-procedures.md

  • Create: docs/monitoring-incident/incident-response.md

  • Create: docs/monitoring-incident/postmortem-template.md

  • Step 1: Create monitoring standards

Uptime Kuma setup, CrowdSec configuration, alert thresholds, dashboard organization

  • Step 2: Create health checks page

Health check endpoints, response format, timeout expectations, frequency

  • Step 3: Create alert routing page

Slack channel routing (#alerts-critical, #alerts-warning), escalation paths, on-call rotation

  • Step 4: Create outage response page

Step-by-step outage response, communication templates, status page updates

  • Step 5: Create degraded service page

Identification, response procedures, partial restoration strategies

  • Step 6: Create rollback procedures

When to rollback, how to execute, verification steps, communication

  • Step 7: Create incident response page

Comprehensive incident handling workflow, roles, communication, resolution

  • Step 8: Create postmortem template

Standardized template with timeline, root cause, action items

  • Step 9: Commit monitoring & incident documentation
git add docs/monitoring-incident/
git commit -m "feat: create monitoring and incident response documentation

- Monitoring standards (Uptime Kuma, CrowdSec)
- Health check expectations
- Alert routing and escalation
- Outage and degraded service response
- Rollback procedures
- Incident response workflow
- Postmortem template

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>"

Task 13: Create Remaining Section Content

Files:

  • All remaining pages in product-operations/, client-delivery/, pricing-standards/, auth-access/, onboarding-offboarding/, migration-archival/

  • Step 1: Create all product operations pages

product-lifecycle.md, launch-checklist.md, release-checklist.md, analytics-instrumentation.md, feature-flags.md, support-ownership.md

  • Step 2: Create all client delivery pages

onboarding-workflow.md, documentation-expectations.md, handoff-procedures.md, deployment-standards.md, ownership-model.md, support-model.md

  • Step 3: Create all pricing standards pages

pricing-methodology.md, estimation-standards.md, packaging-rules.md, stripe-integration.md, calculator-reference.md, pricing-tiers.md

  • Step 4: Create all auth & access pages

auth-patterns.md, access-expectations.md, documenting-auth.md, account-provisioning.md, future-planning.md

  • Step 5: Create all onboarding & offboarding pages

employee-setup.md, account-access.md, tools-required.md, documentation-expectations.md, offboarding-procedures.md

  • Step 6: Create all migration & archival pages

system-migration.md, domain-cutover.md, backup-verification.md, rollback-planning.md, legacy-labeling.md, archival-procedures.md

  • Step 7: Commit all remaining content
git add docs/
git commit -m "feat: create remaining section documentation

Product Operations:
- Product lifecycle and launch/release checklists
- PostHog analytics instrumentation
- Feature flag standards
- Support ownership model

Client Delivery:
- Onboarding workflow and handoff procedures
- Documentation and deployment standards
- Ownership and support models

Pricing Standards:
- Pricing methodology and estimation
- Packaging rules and Stripe integration
- Calculator reference and pricing tiers

Auth & Access:
- Authentication patterns and access policies
- Account provisioning and future planning

Onboarding & Offboarding:
- Employee setup and tool access
- Documentation expectations and handoff

Migration & Archival:
- System migration and domain cutover
- Backup verification and rollback planning
- Legacy labeling and archival procedures

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>"

Phase 7: Templates & Reference Library

Task 14: Create All Document Templates

Files:

  • Create: docs/reference-library/templates/sop-template.md

  • Create: docs/reference-library/templates/system-profile-template.md

  • Create: docs/reference-library/templates/execution-brief-template.md

  • Create: docs/reference-library/templates/incident-report-template.md

  • Create: docs/reference-library/templates/migration-checklist.md

  • Create: docs/reference-library/templates/domain-cutover-checklist.md

  • Create: docs/reference-library/templates/repo-audit-checklist.md

  • Create: docs/reference-library/templates/product-launch-checklist.md

  • Create: docs/reference-library/templates/client-onboarding-checklist.md

  • Create: docs/reference-library/templates/uptime-monitoring-checklist.md

  • Step 1: Create SOP template

Standard operating procedure template with sections: Purpose, Scope, Prerequisites, Procedure, Verification, Troubleshooting, Related Docs

  • Step 2: Create system profile template

System documentation template with: Overview, Tech Stack, Deployment, Monitoring, Auth, Runbooks, Contacts

  • Step 3: Create execution brief template

Project execution template with: Objective, Scope, Stakeholders, Timeline, Deliverables, Risks, Success Criteria

  • Step 4: Create incident report template

Incident report template with: Summary, Timeline, Impact, Root Cause, Resolution, Action Items

  • Step 5: Create migration checklist

Migration checklist with: Pre-migration, Execution, Validation, Rollback, Post-migration, Communication

  • Step 6: Create domain cutover checklist

DNS cutover checklist with: Preparation, TTL reduction, Cutover steps, Verification, Rollback, Monitoring

  • Step 7: Create repo audit checklist

Repository audit checklist with: Documentation, Tests, CI/CD, Security, Dependencies, Standards, License

  • Step 8: Create product launch checklist

Launch checklist with: Pre-launch (analytics, monitoring, docs, tests), Launch, Post-launch, Rollback criteria

  • Step 9: Create client onboarding checklist

Client onboarding with: Kickoff, Access provisioning, Documentation, Handoff, Support setup

  • Step 10: Create uptime monitoring checklist

Uptime Kuma setup with: Service ID, Health checks, Alerts, Slack integration, Verification, Documentation

  • Step 11: Commit all templates
git add docs/reference-library/templates/
git commit -m "feat: create comprehensive document templates

- SOP template for standard operating procedures
- System profile template for system documentation
- Execution brief template for project planning
- Incident report template for postmortems
- Migration checklist for system migrations
- Domain cutover checklist for DNS changes
- Repository audit checklist for compliance
- Product launch checklist for releases
- Client onboarding checklist for new clients
- Uptime monitoring checklist for Kuma setup

All templates include clear sections, guidance, and examples.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>"

Task 15: Create Reference Library Pages

Files:

  • Create: docs/reference-library/glossary.md

  • Create: docs/reference-library/naming-conventions.md

  • Create: docs/reference-library/metadata-schema.md

  • Create: docs/reference-library/links.md

  • Step 1: Create glossary

Company terminology: ERP, SKU, ADR, PostHog events, CrowdSec bouncer, etc.

  • Step 2: Create naming conventions

Naming standards for: repos, Slack channels, env variables, file naming, branch naming

  • Step 3: Create metadata schema

Standard frontmatter fields, tags, categories, required vs optional metadata

  • Step 4: Create links directory

Important links: ERPNext, PostHog dashboard, Uptime Kuma, Vercel, repos, etc.

  • Step 5: Commit reference library
git add docs/reference-library/
git commit -m "feat: create reference library pages

- Glossary of company terminology
- Naming conventions across all systems
- Metadata schema for documentation
- Links directory for quick access

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>"

Phase 8: Blog & Authors

Task 16: Set Up Blog

Files:

  • Create: blog/authors.yml

  • Create: blog/2026-03-25-welcome.md

  • Step 1: Create authors file

blog/authors.yml:

egi_team:
name: EGI Team
title: EGIntegrations Team
url: https://egintegrations.com
image_url: /img/logo.svg
  • Step 2: Create welcome blog post

blog/2026-03-25-welcome.md:

---
slug: welcome-to-egi-sop
title: Welcome to EGI SOP
authors: [egi_team]
tags: [sop-update, announcement]
---

# Welcome to EGI SOP

We're excited to launch the EGI Standard Operating Procedures documentation site! This represents a major consolidation of our internal documentation, bringing together content from multiple sources into a single, well-organized system.

<!-- truncate -->

## What's New

**Consolidated Documentation**
All company standards, engineering procedures, and operational workflows are now in one place, making it easier to find information and maintain consistency.

**Updated Tooling Stack**
Documentation now reflects our current consolidated stack:
- Slack for communication
- ERPNext for business processes
- PostHog for analytics
- Cloudflare for DNS and security
- Uptime Kuma for monitoring
- CrowdSec for intrusion detection
- And more!

**Comprehensive Templates**
We've created 10 reusable templates for SOPs, incident reports, migration checklists, and more.

**GitOps Workflow**
All documentation changes go through pull requests, maintaining quality and providing full version history.

## What's Included

- **12 Documentation Sections** covering everything from company operations to migration procedures
- **Migrated Content** from egi-engine and egi-ci:cd
- **Templates & Checklists** for common operational tasks
- **Tooling Stack Documentation** for all our core tools
- **Operational Runbooks** for system management

## Get Started

- [Read the Introduction](/docs/intro)
- [Explore the Tooling Stack](/docs/tooling-stack)
- [Browse Templates](/docs/reference-library/templates)
- [Review Engineering Standards](/docs/engineering-standards)

## Contributing

Found something missing or outdated? Follow our GitOps workflow to contribute:
1. Create a feature branch
2. Make your changes
3. Open a pull request
4. Team reviews and merges

Questions? Ask in #egi-sop on Slack.

---

*The EGI Team*
  • Step 3: Verify blog

Run: npm run start and navigate to /blog

Expected: Blog post displays with author info

  • Step 4: Commit blog setup
git add blog/
git commit -m "feat: set up blog with welcome post

- Authors configuration
- Welcome post announcing EGI SOP launch
- Blog tags and categories

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>"

Phase 9: README & Documentation

Task 17: Create Comprehensive README

Files:

  • Create: README.md

  • Step 1: Write comprehensive README

# EGI SOP - Internal Documentation Site

EGIntegrations Standard Operating Procedures and Internal Documentation Library built with Docusaurus.

## Overview

EGI-SOP serves as the central source of truth for:
- Company operations and communication standards
- Engineering standards and CI/CD golden path
- Product operations and client delivery processes
- SKU standards and pricing methodology
- Tooling stack documentation
- Operational runbooks and incident response
- Templates and reference materials

## Tech Stack

- **Framework**: Docusaurus v3
- **Runtime**: Node.js 18+
- **Package Manager**: npm
- **Hosting**: Vercel
- **Search**: @cmfcmf/docusaurus-search-local

## Getting Started

### Prerequisites

- Node.js 18.x or later
- npm 9.x or later
- Git

### Installation

```bash
# Clone the repository
git clone <repo-url>
cd egi-sop

# Install dependencies
npm install

# Start development server
npm run start

The site will be available at http://localhost:3000.

Build for Production

# Build static files
npm run build

# Serve built files locally
npm run serve

Project Structure

egi-sop/
├── docs/ # Documentation content
├── blog/ # Changelog and announcements
├── src/
│ ├── css/ # Custom styles (EGI branding)
│ ├── components/ # React components
│ └── pages/ # Custom pages
├── static/
│ └── img/ # Images and assets
├── docusaurus.config.js # Docusaurus configuration
└── sidebars.js # Sidebar navigation

Documentation Sections

  1. Company Operations - Communication, Slack conventions, ownership
  2. Engineering Standards - Development workflow, CI/CD, architecture
  3. Product Operations - Product lifecycle, launches, analytics
  4. Client Delivery - Onboarding, handoff, support
  5. SKU Standards - SKU format and versioning
  6. Pricing Standards - Pricing methodology and Stripe integration
  7. Tooling Stack - Documentation for all EGI tools
  8. Auth & Access - Authentication patterns and provisioning
  9. Monitoring & Incident Response - Monitoring, alerts, runbooks
  10. Onboarding & Offboarding - Employee lifecycle
  11. Migration & Archival - System migrations and archival
  12. Reference Library - Templates, glossary, quick references

Contributing

Workflow

  1. Create a feature branch

    git checkout -b feature/topic-name
  2. Make your changes

    • Edit markdown files in docs/ or blog/
    • Add images to static/img/
    • Update sidebar in sidebars.js if adding new pages
  3. Test locally

    npm run start
  4. Commit your changes

    git add .
    git commit -m "feat: descriptive commit message"
  5. Push and open PR

    git push origin feature/topic-name

    Then open a pull request on GitHub/GitLab.

  6. Review and merge

    • Team reviews via PR comments
    • Vercel creates preview deployment
    • Merge to main after approval

Frontmatter Standards

All documentation pages should include:

---
title: Page Title
description: Brief description (used for SEO)
sidebar_position: 1 # Optional: controls order in sidebar
last_updated: 2026-03-25
tags: [tag1, tag2] # Optional
---

Markdown Conventions

  • Headings: Use H2 (##) for main sections, H3 for subsections
  • Code blocks: Include language hint for syntax highlighting
  • Links: Use relative paths for internal links
  • Images: Store in static/img/, reference as /img/filename.png
  • Admonitions: Use :::tip, :::warning, :::info, :::danger for callouts

Adding New Pages

  1. Create markdown file in appropriate docs/ subdirectory
  2. Add frontmatter (see above)
  3. Update sidebars.js to include new page in navigation
  4. Test locally to verify navigation works

Blog Posts

Create blog posts in blog/ directory:

---
slug: post-slug
title: Post Title
authors: [egi_team]
tags: [sop-update, tooling, etc]
---

Brief excerpt shown in listing.

<!-- truncate -->

Full post content here.

Deployment

Automatic Deployment (Vercel)

  • Production: Commits to main → auto-deploy to production
  • Preview: Pull requests → preview deployments with unique URLs

Manual Deployment

If deploying manually:

npm run build
# Upload `build/` directory to hosting

Troubleshooting

Build Errors

Error: Module not found

rm -rf node_modules package-lock.json
npm install

Error: Port 3000 already in use

npm run start -- --port 3001

Run link checker:

npm run build
# Check build output for broken link warnings

Customization

Branding

Edit src/css/custom.css to modify:

  • Colors (EGI cream, navy, blue)
  • Fonts
  • Component styling

Replace static/img/logo.svg with your logo.

Configuration

Edit docusaurus.config.js for:

  • Site metadata
  • Navbar items
  • Footer links
  • Plugin configuration

Maintenance

Updating Dependencies

npm update
npm audit fix

Docusaurus Upgrades

Check for Docusaurus updates:

npm outdated @docusaurus/core

Follow Docusaurus upgrade guide.

Support

License

Internal use only - EGIntegrations


Built with Docusaurus


- [ ] **Step 2: Verify README**

Run: `cat README.md | wc -l`

Expected: Comprehensive README with all sections

- [ ] **Step 3: Commit README**

```bash
git add README.md
git commit -m "docs: create comprehensive README

- Getting started and installation
- Project structure overview
- Contributing workflow and standards
- Deployment instructions
- Troubleshooting guide
- Maintenance procedures

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>"

Phase 10: Testing & Verification

Task 18: Comprehensive Testing

Files:

  • Create: .gitignore (if not exists)

  • Step 1: Create/verify .gitignore

# Dependencies
/node_modules
/.pnp
.pnp.js

# Production
/build

# Generated files
.docusaurus
.cache-loader

# Misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local

npm-debug.log*
yarn-debug.log*
yarn-error.log*
  • Step 2: Full production build

Run: npm run build

Expected: Build succeeds with no errors

  • Step 3: Serve production build locally

Run: npm run serve

Expected: Production build serves correctly at http://localhost:3000

  • Step 4: Test all navigation

Navigate through all 12 sections, verify:

  • All index pages load

  • All sub-pages load

  • Sidebar navigation works

  • Breadcrumbs work

  • Internal links work

  • Step 5: Test search

Search for terms like "SKU", "Slack", "monitoring", "template"

Expected: Search returns relevant results

  • Step 6: Test blog

Navigate to /blog, verify:

  • Blog listing shows welcome post

  • Post detail page loads

  • Author info displays

  • Tags work

  • Step 7: Test dark mode

Toggle dark mode, verify:

  • Colors invert correctly

  • Everything remains readable

  • Images/logo look appropriate

  • Step 8: Test responsive design

Resize browser to mobile width, verify:

  • Navigation hamburger menu works

  • Content is readable

  • Tables scroll horizontally if needed

  • Step 9: Document test results

Create: docs/superpowers/test-results.md with findings

  • Step 10: Commit testing updates
git add .gitignore docs/superpowers/test-results.md
git commit -m "test: comprehensive site testing

- Verified production build
- Tested all navigation paths
- Verified search functionality
- Tested blog and authors
- Verified dark mode
- Tested responsive design
- Documented test results

All tests passing.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>"

Phase 11: Deployment Preparation

Task 19: Prepare for Vercel Deployment

Files:

  • Create: vercel.json (optional configuration)

  • Create: .vercelignore (optional)

  • Step 1: Create Vercel configuration (optional)

vercel.json:

{
"buildCommand": "npm run build",
"outputDirectory": "build",
"framework": "docusaurus",
"rewrites": [
{ "source": "/(.*)", "destination": "/" }
]
}
  • Step 2: Create .vercelignore
node_modules
.docusaurus
.cache-loader
docs/superpowers
  • Step 3: Verify package.json scripts

Ensure package.json has:

{
"scripts": {
"docusaurus": "docusaurus",
"start": "docusaurus start",
"build": "docusaurus build",
"swizzle": "docusaurus swizzle",
"deploy": "docusaurus deploy",
"clear": "docusaurus clear",
"serve": "docusaurus serve",
"write-translations": "docusaurus write-translations",
"write-heading-ids": "docusaurus write-heading-ids"
}
}
  • Step 4: Final production build test

Run: npm run build

Expected: Clean build with no errors or warnings

  • Step 5: Commit Vercel configuration
git add vercel.json .vercelignore package.json
git commit -m "chore: prepare for Vercel deployment

- Vercel configuration file
- Vercel ignore rules
- Verified build scripts

Ready for deployment.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>"

Task 20: Final Review and Documentation

Files:

  • Update: docs/intro.md

  • Create: DEPLOYMENT.md

  • Step 1: Create deployment guide

DEPLOYMENT.md:

# Deployment Guide

## Vercel Deployment

### Initial Setup

1. **Connect Repository to Vercel**
- Go to https://vercel.com
- Click "Add New Project"
- Import your git repository
- Select framework: Docusaurus

2. **Configure Build Settings**
- Build Command: `npm run build`
- Output Directory: `build`
- Install Command: `npm install`
- Development Command: `npm run start`

3. **Add Environment Variables** (if needed)
- None required for initial deployment

4. **Deploy**
- Click "Deploy"
- Wait for build to complete
- Verify deployment at generated URL

### Custom Domain

1. **Add Domain in Vercel**
- Project Settings → Domains
- Add domain: `sop.egintegrations.com`

2. **Configure DNS (Cloudflare)**
- Add CNAME record pointing to Vercel

3. **Verify SSL**
- Vercel automatically provisions SSL certificate

### Automatic Deployments

- **Production**: Every push to `main` branch
- **Preview**: Every pull request

### Manual Deployment

If needed, deploy manually:

```bash
npm run build
vercel --prod

Rollback

Via Vercel Dashboard

  1. Go to Deployments
  2. Find previous successful deployment
  3. Click "Promote to Production"

Via Git

git revert <commit-hash>
git push origin main

Monitoring

  • Deployment status: Vercel dashboard
  • Build logs: Available in Vercel
  • Analytics: Vercel Analytics (optional)

Troubleshooting

Build Fails

  1. Check build logs in Vercel
  2. Reproduce locally with npm run build
  3. Fix errors and push

Site Not Updating

  1. Verify deployment completed successfully
  2. Clear browser cache
  3. Check Vercel deployment logs

Support

Questions? Ask in #egi-sop on Slack.


- [ ] **Step 2: Update intro.md with deployment status**

Add to bottom of `docs/intro.md`:

```markdown
## Deployment

This site is deployed on Vercel with automatic deployments:
- **Production**: https://sop.egintegrations.com (when configured)
- **Repository**: (link to git repo)

See [DEPLOYMENT.md](../DEPLOYMENT.md) for deployment procedures.
  • Step 3: Create contribution quick start

Add to README.md section "Quick Contribution Guide"

  • Step 4: Final commit
git add DEPLOYMENT.md docs/intro.md README.md
git commit -m "docs: add deployment guide and final documentation

- Comprehensive Vercel deployment guide
- Rollback procedures
- Troubleshooting steps
- Updated intro with deployment info
- Quick contribution guide

Documentation complete and ready for deployment.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>"

Phase 12: Final Verification

Task 21: Complete Implementation Checklist

Verification Checklist:

  • Step 1: Verify all 12 documentation sections exist

Check:

  • company-operations/

  • engineering-standards/

  • product-operations/

  • client-delivery/

  • sku-standards/

  • pricing-standards/

  • tooling-stack/

  • auth-access/

  • monitoring-incident/

  • onboarding-offboarding/

  • migration-archival/

  • reference-library/

  • Step 2: Verify all migrations completed

Check:

  • SKU standards from egi-engine ✓

  • Runbooks from egi-engine ✓

  • Engineering standards from egi-ci:cd

  • ADRs from egi-ci:cd

  • CI/CD docs from egi-ci:cd

  • Step 3: Verify all templates created

Check 10 templates exist in reference-library/templates/

  • Step 4: Verify tooling stack documentation

Check all 10 tools documented: Slack, ERPNext, PostHog, Cloudflare, Uptime Kuma, CrowdSec, Docusaurus, Vercel, Penpot, Stripe

  • Step 5: Verify branding applied

Check:

  • EGI colors (cream, navy, blue)

  • Logo in navbar

  • Custom CSS loaded

  • Dark mode works

  • Step 6: Verify blog setup

Check:

  • authors.yml exists

  • Welcome post exists

  • Blog accessible at /blog

  • Step 7: Verify README and documentation

Check:

  • README.md comprehensive

  • DEPLOYMENT.md exists

  • Contributing guidelines clear

  • Step 8: Final build test

Run: npm run build

Expected: Clean build, no errors

  • Step 9: Create implementation completion report

Create: docs/superpowers/implementation-complete.md

Document:

  • All completed tasks

  • Migration sources

  • Testing results

  • Deployment readiness

  • Step 10: Final commit

git add docs/superpowers/implementation-complete.md
git commit -m "chore: complete EGI SOP implementation

All phases complete:
✅ Phase 1: Project initialization
✅ Phase 2: Branding and styling
✅ Phase 3: Core documentation structure
✅ Phase 4: Content migration from egi-engine
✅ Phase 5: Content migration from egi-ci:cd
✅ Phase 6: Remaining section content
✅ Phase 7: Templates and reference library
✅ Phase 8: Blog and authors
✅ Phase 9: README and documentation
✅ Phase 10: Testing and verification
✅ Phase 11: Deployment preparation
✅ Phase 12: Final verification

12 documentation sections created
10 templates implemented
All migrations completed
Branding applied
Blog configured
Documentation comprehensive
Testing complete
Ready for deployment

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>"

Success Criteria Verification

The implementation is complete when all of the following are verified:

  1. Structure: All 12 documentation sections created with proper navigation
  2. Content: Existing documentation migrated from egi-engine and egi-ci:cd
  3. Updates: All tool references updated to reflect consolidated stack
  4. Templates: All 10 required templates created and documented
  5. Branding: EGI branding applied (colors, typography, logo)
  6. Blog: Blog setup with example posts
  7. Deployment: Site ready for Vercel deployment with GitOps workflow
  8. Documentation: README and contribution guidelines complete
  9. Testing: All links work, site builds without errors, search functional
  10. Handoff: Documentation complete for team contribution workflow

Post-Implementation Tasks

After deployment, complete these tasks:

  1. Set up Vercel project and configure custom domain
  2. Configure Cloudflare DNS to point to Vercel
  3. Test production deployment thoroughly
  4. Create Slack channel #egi-sop for announcements
  5. Announce to team with introduction and contribution guide
  6. Schedule review for one week post-launch to gather feedback
  7. Plan content updates based on team needs

Notes for Agentic Workers

  • Each task is designed to be self-contained and take 5-15 minutes
  • Commits should be made after each task completion
  • Always test locally with npm run start before committing
  • Verify builds with npm run build periodically
  • Follow frontmatter standards for all markdown files
  • Maintain EGI branding consistency throughout
  • Update tool references to consolidated stack in all migrated content
  • Test navigation and search after adding significant content