The OpenWorkDocs repository is an open-source GitHub project designed to provide reusable, customizable company document templates, including policies, Standard Operating Procedures (SOPs), how-tos, and more. Initially tailored for US-based tech firms, it is built to scale globally and across various industries. The repository leverages a modular structure, a configuration-driven customization process, and a generation script to produce tailored documents without requiring users to fork the repository. Community contributions via pull requests (PRs) ensure continuous improvement and adaptability. This is a specification document and not all of this may have been implemented or even be in progress.
The repository is structured for clarity, modularity, and scalability, with well-defined naming conventions and categorization.
openworkdocs/
├── modules/
│ ├── code_of_conduct/
│ │ ├── base.md
│ │ ├── tech_company.md
│ └── us_specific.md
│ ├── time_off_policy/
│ │ ├── base.md
│ │ ├── remote_workers.md
│ └── us_specific.md
│ ├── dress_code/
│ │ ├── base.md
│ │ ├── sales_staff.md
│ └── software_developer.md
│ ├── recruitment/
│ │ ├── base.md
│ │ ├── job_posting_templates.md
│ │ ├── interview_process.md
│ ├── background_checks.md
│ └── offer_letters.md
│ ├── performance_management/
│ │ ├── base.md
│ │ ├── goal_setting.md
│ │ ├── performance_reviews.md
│ ├── development_plans.md
│ └── performance_improvement.md
│ └── industries/
│ └── law/
│ ├── client_intake_procedures.md
│ ├── attorney_ethics_compliance.md
│ ├── billing_time_tracking.md
│ ├── document_management.md
│ ├── case_management.md
│ ├── client_communication.md
│ └── risk_management.md
├── templates/
│ ├── company_config.yaml
│ └── generate.py
├── docs/
│ ├── getting_started.md
│ ├── contributing.md
│ ├── faq.md
│ └── module_organization.md
├── tests/
│ ├── test_generate.py
│ └── sample_config.yaml
├── integrations/
│ ├── confluence.py
│ ├── mediawiki.py
│ └── notion.py
├── LICENSE
└── README.md
- modules/: Contains document-specific subdirectories with modular Markdown files:
base.md: Generic content applicable to most companies.- Industry-specific files (e.g.,
tech_company.md,healthcare.md). - Region-specific files (e.g.,
us_specific.md,eu_compliant.md).
- templates/: Includes a sample
company_config.yamland thegenerate.pyscript. - docs/: Houses user guides, contribution instructions, FAQs, and a
module_organization.mddetailing naming conventions. - tests/: Provides automated tests for the generation script and sample configurations.
- integrations/: Offers scripts for importing generated documents into platforms like Confluence, MediaWiki or Notion.
- LICENSE: Uses the MIT License for maximum flexibility.
- README.md: Features a project overview, setup instructions, and a call-to-action for contributions.
- Document Categories: Each document type (e.g.,
code_of_conduct,time_off_policy) resides in its own subdirectory. - Module Types:
base.md: Core content suitable for most companies.- Industry-specific: Named by industry (e.g.,
tech_company.md,healthcare.md). - Role-specific: Tailored to employee types (e.g.,
clinical_staff.md,software_developer.md). - Region-specific: Ensures legal compliance (e.g.,
us_specific.md,eu_gdpr.md).
- Naming Conventions:
- Use lowercase with underscores (e.g.,
remote_workers.md). - Avoid special characters to ensure system compatibility.
- Use lowercase with underscores (e.g.,
- Extensibility: New categories or modules can be proposed via PRs, adhering to the established naming conventions.
Companies can customize documents using a configuration file and a generation script, eliminating the need to fork the repository.
- Purpose: Defines the base commit, variables, and selected modules for customization.
- Example:
base_commit: "a1b2c3d4e5f6" # Locks to a specific commit variables: company_name: "Acme Corp" logo_url: "https://acme.com/logo.png" industry: "Technology" region: "US" policies: code_of_conduct: - base - tech_company time_off_policy: - base - us_specific dress_code: - base - software_developer
- Usage: Stored locally or in a company’s own repository and passed to
generate.py.
- Purpose: Combines selected modules, applies variable substitutions, and outputs customized documents.
- Features:
- Clones the repository at the specified commit.
- Uses Jinja2 to render templates with variables from
company_config.yaml. - Outputs Markdown files to a designated directory (e.g.,
output/).
- Command:
python generate.py --config company_config.yaml --output output/
- Example Output:
output/code_of_conduct.md:# Acme Corp Code of Conduct Welcome to Acme Corp! We value respect and integrity. Innovation and collaboration are core to our tech culture.
- Engine: Jinja2 for dynamic content rendering.
- Example Module (
code_of_conduct/base.md):# {{ company_name }} Code of Conduct Welcome to {{ company_name }}! We value respect and integrity. {% if industry == "Technology" %} Innovation and collaboration are core to our tech culture. {% endif %}
- Companies maintain their
company_config.yamlexternally and regenerate documents as needed. - To update documents, they adjust the
base_commitand rerungenerate.py.
The repository fosters community contributions through GitHub PRs, supported by detailed guidelines and governance.
- Fork the Repo: Create a personal fork on GitHub.
- Add or Edit Modules: Adhere to naming conventions in
modules/. - Test Changes: Validate using
generate.pywith a sample config. - Submit a PR:
- Follow the PR template in
docs/contributing.md. - Reference relevant issues (e.g.,
#123).
- Follow the PR template in
- Review Process: Maintainers and community reviewers evaluate PRs.
- Module Standards:
- Use Markdown with Jinja2 for variable integration.
- Write generic, reusable content.
- Include a brief PR description.
- Conflict Resolution:
- Overlapping PRs are resolved through community feedback.
- Maintainers hold final decision-making authority.
- Governance:
- A steering committee of active contributors oversees major changes.
To encourage adoption, the repository addresses common concerns with practical solutions.
- Pre-built Configs: Offers industry-specific starter packs (e.g., "Tech Starter Pack").
- Guided Setup: Provides an interactive CLI or web tool for config creation.
- Documentation: Includes step-by-step guides with screenshots and videos.
- Export Options: Supports PDF, Word, or HTML outputs for final adjustments.
- Version Control: Companies can manage configs in their own repositories.
- Expert Reviews: Modules are vetted by volunteer HR and legal professionals.
- Compliance Tags: Labels such as "US Labor Law" or "EU GDPR".
- Changelogs: Per-module history in
modules/<policy>/CHANGELOG.md.
- Local Generation: No external data sharing required.
- Encryption Guidance: Best practices for securing configs.
- Automated Notifications: GitHub releases trigger update alerts.
- Backward Compatibility: Modules remain compatible across versions.
- Branding: Variables for logos, colors, and tone customization.
- Community Modules: Industry or culture-specific add-ons.
- Case Studies: Success stories documented in
docs/faq.md. - ROI Calculator: Estimates time savings on the project website.
- Community Forum: GitHub Discussions for support and Q&A.
- Transition Guides: Step-by-step migration plans.
The repository will expand in phases, with defined milestones.
- Focus: Remote work, DEI, and open-source policies.
- Milestones:
- Launch with 5 core documents.
- Onboard 10 beta companies.
- Publish 3 case studies.
- Focus: Healthcare, finance, and manufacturing.
- Milestones:
- Add 5 new industry-specific modules.
- Partner with 2 industry associations.
- Reach 50 active companies.
- Focus: Region-specific compliance (e.g., EU, Asia).
- Milestones:
- Translate core modules into 3 languages.
- Add 10 region-specific modules.
- Host a global contributor summit.
These enhancements improve usability, integration, and overall value.
- A browser-based UI for creating and previewing
company_config.yaml. - Features:
- Drag-and-drop module selection.
- Real-time document preview.
- Export options for config and generated documents.
- Scripts in
integrations/for platforms like Confluence, Notion, or SharePoint. - Example:
confluence.pyuploads documents via API.
- A linter to identify missing compliance clauses (e.g., "No anti-harassment policy detected").
- Extensible with custom rules.
- A curated list of premium or specialized modules via GitHub Sponsors.
- Revenue shared with contributors.
- Tracks popular modules using GitHub traffic data.
- Publishes insights to inform development priorities.
- A web tool to compare module versions and visualize differences.
- Assists companies in deciding when to update their
base_commit.
- Forum: GitHub Discussions for Q&A and feature requests.
- Monthly Newsletter: Updates on new modules and contributors.
- Contributor Spotlights: Profiles of active community members.
To ensure seamless adoption, the repository supports integration with popular tools:
- HR Software: Export documents as JSON for import into systems like BambooHR or Workday.
- Document Management: Scripts for uploading to Google Drive, Dropbox, or SharePoint.
- Example Integration:
integrations/notion.py: Uploads documents to a Notion workspace via API.