Solutech Engineering

Engineering Documentation Structure Guide

Engineering Documentation Structure Guide

Table of Contents

  1. Three-Layer Documentation Model
  2. Layer 1: Google Drive Structure
  3. Layer 2: Fumadocs Structure
  4. Layer 3: Repository Documentation
  5. Learning & Research Framework
  6. Architecture Decision Process
  7. Decision Tree: Where Does This Go?
  8. Maintenance & Ownership

Three-Layer Documentation Model

Layer 1: Google Drive - Official Records

Purpose: Legal compliance, HR, performance management
Characteristics: Formal, version-controlled, access-restricted
Update Frequency: Quarterly or as needed
Examples: Performance reviews, signed policies, promotion packets

Layer 2: Fumadocs - Engineering Portal

Purpose: Discoverability, standards, cross-cutting knowledge
Characteristics: Curated, high-level, interconnected
Update Frequency: Monthly or when processes change
Examples: Onboarding guides, coding standards, system architecture

Layer 3: Repositories - Living Implementation

Purpose: Build, test, deploy specific systems
Characteristics: Detailed, technical, continuously updated
Update Frequency: With every significant code change
Examples: Setup instructions, API docs, BDD feature files


Layer 1: Google Drive Structure

Design Principles

  • Flat over nested: Maximum 3 levels of folders
  • Date-prefixed for chronological: Use YYYY-MM-DD- for dated documents
  • Role-based access: Control at folder level
  • Templates separate from work: Clear separation

Folder Structure

📁 Engineering/

├── 📁 _Templates/ ⭐ (All templates in ONE place)
│   ├── 📄 Performance-Review-Template.gdoc
│   ├── 📄 Individual-Learning-Plan-Template.gdoc
│   ├── 📄 Learning-Log-Template.gsheet ⭐ NEW
│   ├── 📄 1on1-Notes-Template.gdoc
│   ├── 📄 Promotion-Packet-Template.gdoc
│   ├── 📄 Incident-Report-Template.gdoc
│   ├── 📄 Post-Mortem-Template.gdoc
│   ├── 📄 Onboarding-Checklist-Template.gdoc
│   ├── 📄 Purchase-Request-Template.gdoc
│   └── 📄 _README.gdoc (How to use templates)

├── 📁 Official-Policies/ (Signed, versioned)
│   ├── 📄 2026-01-Engineering-Performance-Framework-SIGNED.pdf
│   ├── 📄 2026-01-Engineering-Career-Ladder-SIGNED.pdf
│   ├── 📄 2025-Engineering-Strategy-Vision.pdf
│   ├── 📄 Code-of-Conduct.pdf
│   ├── 📄 IP-and-Confidentiality-Agreement.pdf
│   └── 📁 Archive/
│       └── 📄 2025-01-Performance-Framework-SIGNED.pdf

├── 📁 People/ (Performance & career)
│   ├── 📁 Performance-Reviews/
│   │   ├── 📁 2026-H1/ (Half-yearly folders)
│   │   │   ├── 📄 2026-06-30-John-Doe-Review.gdoc
│   │   │   ├── 📄 2026-06-30-Jane-Smith-Review.gdoc
│   │   │   └── 📊 2026-H1-Calibration-Data.gsheet
│   │   └── 📁 2025-H2/
│   │
│   ├── 📁 Learning-Plans/ ⭐ (Track individual growth)
│   │   └── 📁 2026/
│   │       ├── 📄 2026-Q1-John-Doe-ILP.gdoc
│   │       ├── 📊 2026-John-Doe-Learning-Log.gsheet ⭐
│   │       ├── 📄 2026-Q1-Jane-Smith-ILP.gdoc
│   │       └── 📊 2026-Jane-Smith-Learning-Log.gsheet ⭐
│   │
│   ├── 📁 Promotions/
│   │   └── 📁 2026/
│   │       └── 📄 2026-03-John-Doe-Senior-Promotion.gdoc
│   │
│   ├── 📁 1on1-Notes/ (By manager, then direct report)
│   │   └── 📁 Sarah-Manager/
│   │       ├── 📁 John-Doe/
│   │       │   ├── 📄 2026-01-15.gdoc
│   │       │   └── 📄 2026-01-29.gdoc
│   │       └── 📁 Jane-Smith/
│   │
│   └── 📁 Performance-Improvement-Plans/
│       ├── 📁 Active/
│       └── 📁 Closed/

├── 📁 Onboarding/ (New hire tracking)
│   └── 📁 2026/
│       ├── 📄 2026-01-15-John-Doe-Onboarding.gdoc
│       └── 📄 2026-02-01-Jane-Smith-Onboarding.gdoc

├── 📁 Compliance/ (Audit evidence)
│   ├── 📁 SOC2-2026/
│   │   ├── 📊 Control-Evidence-Tracker.gsheet
│   │   ├── 📄 CC6.1-Access-Control-Evidence.gdoc
│   │   └── 📄 CC8.1-Change-Management-Evidence.gdoc
│   └── 📁 GDPR/
│       └── 📊 Data-Processing-Inventory.gsheet

├── 📁 Incidents/ (Major incidents only)
│   └── 📁 2026/
│       ├── 📄 2026-01-15-INC001-Payment-Outage.gdoc
│       └── 📄 2026-02-03-INC002-Database-Performance.gdoc

├── 📁 Budget/
│   ├── 📊 2026-Engineering-Budget.gsheet
│   ├── 📊 Learning-Development-Budget.gsheet ⭐ NEW
│   │   (Columns: Person | Request Date | Item/Course | Cost | Manager Approval | Status | Receipt)
│   ├── 📊 Tool-Licenses-Inventory.gsheet
│   └── 📁 Purchase-Requests/
│       └── 📄 2026-01-PR001-IDE-Licenses.gdoc

├── 📁 Hiring/
│   ├── 📁 Job-Descriptions/ (Living, not dated)
│   │   ├── 📄 Senior-Mobile-Engineer-JD.gdoc
│   │   └── 📄 Mid-Backend-Engineer-JD.gdoc
│   ├── 📊 2026-Candidate-Pipeline.gsheet
│   └── 📁 Offer-Letters/
│       └── 📁 2026/

├── 📁 Meeting-Notes/ (Official meeting records)
│   ├── 📁 All-Hands/
│   │   ├── 📄 2026-01-All-Hands.gdoc
│   │   └── 📄 2026-02-All-Hands.gdoc
│   ├── 📁 Leadership-Sync/
│   │   └── 📄 2026-Leadership-Weekly-Notes.gdoc
│   ├── 📁 Architecture-Guild/ ⭐
│   │   └── 📄 2026-Architecture-Guild-Notes.gdoc
│   ├── 📁 Show-and-Tell/ ⭐ NEW
│   │   ├── 📊 2026-Show-and-Tell-Log.gsheet
│   │   │   (Columns: Date | Presenter | Topic | Recording Link | Attendees)
│   │   └── 📁 Recordings/ (or links to video storage)
│   └── 📁 Tech-Talks/ ⭐ NEW
│       ├── 📊 2026-Tech-Talks-Schedule.gsheet
│       │   (Columns: Date | Speaker | Topic | Recording Link | Slides Link | Attendees)
│       └── 📁 Slides/

└── 📁 Reports/ (Quarterly business reports)
    └── 📁 2026/
        ├── 📄 2026-Q1-Engineering-Report.gdoc
        └── 📊 2026-Q1-Engineering-Metrics.gsheet

Learning Log Template (Google Sheets)

Columns:

DateTopicTypeHoursKey TakeawaysApplied to Work?Status
2026-01-15Flutter AnimationsTutorial4Learned implicit animationsPR-#234Complete
2026-01-18DDD PatternsBook6Value objects patternRFC-M-003In Progress
2026-01-22GraphQL BasicsCourse8Schema design principles-Complete

Types: Book, Course, Tutorial, Experimentation, Conference, Spike, RFC Research

What Belongs in Google Drive

MUST be in Google Drive:

  • Signed official policies
  • Official Career Ladder document (PDF)
  • Official Performance Framework document (PDF)
  • Performance reviews and calibration data
  • Individual Learning Plans
  • Individual Learning Logs (tracking personal growth)
  • 1:1 meeting notes
  • Promotion packets
  • Compliance evidence (SOC2, GDPR)
  • Budget and financial planning
  • Learning & development budget tracking (actual requests/approvals)
  • Hiring pipelines and offer letters
  • Major incident post-mortems (not minor bugs)
  • All meeting notes and records:
    • Leadership meeting notes
    • Architecture Guild meeting notes
    • Show & Tell logs and recordings ⭐
    • Tech Talk schedules and recordings ⭐
    • All-hands notes
  • Quarterly business reports
  • All templates (_Templates/ folder)

Must NOT be in Google Drive:

  • Technical documentation
  • Code examples or snippets
  • API documentation
  • System architecture diagrams (unless official signed versions)
  • Process documentation (HOW to do things)
  • Team processes (sprint workflows, code review)
  • How to understand performance reviews (that's Fumadocs)
  • How promotions work (that's Fumadocs)
  • How Show & Tell works (that's Fumadocs) ⭐
  • How to request learning budget (that's Fumadocs) ⭐
  • How to write RFCs/ADRs (that's Fumadocs) ⭐
  • RFCs (Request for Comments) (that's Fumadocs)
  • ADRs (Architecture Decision Records) (that's Fumadocs or Repos)
  • Onboarding technical guides
  • Daily operational notes

Naming Conventions

Document TypeFormatExample
Dated documentsYYYY-MM-DD-Description2026-01-15-John-Doe-Review.gdoc
TemplatesDescription-TemplatePerformance-Review-Template.gdoc
Official policiesYYYY-MM-PolicyName-SIGNED2026-01-Career-Ladder-SIGNED.pdf
Versioned docsYYYY-QX-Description2026-Q1-Engineering-Report.gdoc
Learning logsYYYY-Name-Learning-Log2026-John-Doe-Learning-Log.gsheet

Access Control Strategy

FolderWho Has AccessWhy
_Templates/All engineersEveryone needs templates
Official-Policies/All engineersTransparency
People/Performance-Reviews/Manager + HR + IndividualPrivacy
People/Learning-Plans/Manager + IndividualPrivacy
People/1on1-Notes/Manager + Direct ReportPrivacy
Compliance/Security + Leadership + AuditorsCompliance
Budget/Leadership + FinanceConfidential
Budget/Learning-Development-Budget/Manager + Finance (view all)Tracking
Hiring/Hiring Managers + RecruitersConfidential
Meeting-Notes/Architecture-Guild/All engineersTransparency
Meeting-Notes/Show-and-Tell/All engineersKnowledge sharing
Meeting-Notes/Tech-Talks/All engineersKnowledge sharing

Layer 2: Fumadocs Structure

Design Principles

  • Curated over comprehensive: Link to repos, don't duplicate
  • High-level over detailed: Explain "why" and "what", not "how" (that's in repos)
  • Cross-cutting over team-specific: If only one team needs it, it goes in their repo
  • Stable over changing: Document things that change quarterly, not daily

Folder Structure

📁 docs/ (fumadocs root)

├── 📄 index.mdx (Welcome to Engineering @ Solutech)

├── 📁 getting-started/
│   ├── 📄 index.mdx (Your First Week)
│   ├── 📄 engineering-handbook.mdx (Company culture, values, how we work)
│   ├── 📄 team-structure.mdx (Org chart, team missions)
│   ├── 📄 tools-and-access.mdx (How to request access to tools)
│   ├── 📄 communication-norms.mdx (Slack, meetings, email)
│   └── 📄 first-contribution.mdx (How to make your first PR)

├── 📁 how-we-work/
│   ├── 📄 index.mdx (Engineering Processes Overview)
│   ├── 📄 sprint-process.mdx (2-week sprints, ceremonies)
│   ├── 📄 task-workflow.mdx (Jira workflow: New → In Progress → Done)
│   ├── 📄 code-review-process.mdx (PR guidelines, approval rules)
│   ├── 📄 git-workflow.mdx (Branching strategy, commit messages)
│   ├── 📄 deployment-process.mdx (How code gets to production)
│   ├── 📄 incident-response.mdx (On-call, escalation)
│   ├── 📄 three-amigos.mdx (Product + Dev + QA collaboration)
│   │
│   ├── 📁 bdd/
│   │   ├── 📄 index.mdx (BDD Overview - why we use it)
│   │   ├── 📄 bdd-workflow.mdx (The BDD process: 3 Amigos → Gherkin → Implementation)
│   │   ├── 📄 writing-scenarios.mdx ⭐ (How to write good Gherkin scenarios)
│   │   ├── 📄 feature-structure.mdx ⭐ (How to organize feature files by modules)
│   │   ├── 📄 step-definitions.mdx (How to write reusable step definitions)
│   │   ├── 📄 test-data-management.mdx (Managing test data in BDD)
│   │   ├── 📄 running-bdd-tests.mdx (How to run BDD tests locally and in CI)
│   │   └── 📄 bdd-best-practices.mdx (Common pitfalls and how to avoid them)
│   │
│   ├── 📁 learning-and-research/ ⭐ NEW
│   │   ├── 📄 index.mdx (Overview: Learning vs Research)
│   │   ├── 📄 personal-learning.mdx (How to track and grow your skills)
│   │   ├── 📄 knowledge-sharing.mdx ⭐ (HOW Show & Tell works, WHEN, FORMAT - not actual logs)
│   │   ├── 📄 tech-talks.mdx ⭐ (HOW to propose/deliver talks, PROCESS - not schedule)
│   │   ├── 📄 spike-process.mdx (When and how to spike)
│   │   ├── 📄 preventing-duplicate-research.mdx (Communication strategies)
│   │   └── 📄 learning-budget.mdx ⭐ (HOW to request budget, WHAT it covers - not tracking)
│   │
│   └── 📁 architecture-decisions/ ⭐ NEW
│       ├── 📄 index.mdx (Overview: RFC → ADR process)
│       ├── 📄 rfc-process.mdx (Request for Comments workflow)
│       ├── 📄 adr-process.mdx (Architecture Decision Records)
│       ├── 📄 research-guidelines.mdx (How to conduct technical research)
│       ├── 📄 spike-vs-rfc.mdx (When to spike vs when to RFC)
│       └── 📄 decision-levels.mdx (Company vs Platform vs Application)

├── 📁 standards/
│   ├── 📄 index.mdx (Standards Overview)
│   ├── 📄 coding-standards.mdx (General principles: DRY, SOLID, naming)
│   ├── 📄 api-design.mdx (RESTful conventions, versioning)
│   ├── 📄 database-standards.mdx (Naming, migrations, indexes)
│   ├── 📄 testing-standards.mdx (Unit, integration, E2E coverage)
│   ├── 📄 security-standards.mdx (OWASP, secrets management)
│   ├── 📄 documentation-standards.mdx (When/how to document)
│   ├── 📄 accessibility.mdx (WCAG compliance)
│   │
│   └── 📁 architecture-patterns/
│       ├── 📄 index.mdx (Architecture Standards Overview)
│       ├── 📄 mobile-architecture.mdx ⭐ (Standard Flutter architecture for ALL mobile apps)
│       ├── 📄 backend-architecture.mdx ⭐ (Standard Laravel architecture for ALL backends)
│       ├── 📄 web-architecture.mdx ⭐ (Standard Vue/Nuxt architecture for ALL web apps)
│       └── 📄 architectural-exceptions.mdx (When/how to deviate from standards)

├── 📁 architecture/
│   ├── 📄 index.mdx (System Architecture Overview)
│   ├── 📄 technology-radar.mdx (Adopt, Trial, Assess, Hold)
│   ├── 📄 design-patterns.mdx (Common patterns we use)
│   ├── 📄 integration-patterns.mdx (How systems talk to each other)
│   │
│   ├── 📁 rfcs/ ⭐ NEW (Request for Comments - Research phase)
│   │   ├── 📄 index.mdx (Active RFC Registry - auto-updated)
│   │   ├── 📄 template.mdx (RFC template)
│   │   │
│   │   ├── 📁 open/ (Currently researching)
│   │   │   ├── 📄 001-evaluating-monitoring-solutions.mdx
│   │   │   ├── 📄 002-event-streaming-comparison.mdx
│   │   │   └── 📄 003-api-gateway-options.mdx
│   │   │
│   │   └── 📁 resolved/ (Became ADRs or were rejected)
│   │       ├── 📄 001-evaluating-state-management.mdx → ADR-005
│   │       └── 📄 002-database-replication-strategy.mdx (Rejected)
│   │
│   ├── 📁 decisions/ (Architecture Decision Records - Company-wide Level 1)
│   │   ├── 📄 index.mdx (All ADRs index)
│   │   ├── 📄 template.mdx (ADR template)
│   │   ├── 📄 001-chose-laravel.mdx
│   │   ├── 📄 002-chose-flutter.mdx
│   │   ├── 📄 003-microservices-strategy.mdx
│   │   └── 📄 004-event-driven-architecture.mdx
│   │
│   ├── 📁 mobile/ ⭐ (Platform-specific Level 2)
│   │   ├── 📄 index.mdx (Mobile Architecture Overview)
│   │   ├── 📄 flutter-standard.mdx (Standard architecture for ALL Flutter apps)
│   │   │
│   │   ├── 📁 rfcs/ ⭐ NEW
│   │   │   ├── 📁 open/
│   │   │   │   └── 📄 M-003-offline-sync-strategies.mdx
│   │   │   └── 📁 resolved/
│   │   │
│   │   └── 📁 decisions/ (Platform-wide mobile ADRs - Level 2)
│   │       ├── 📄 M-001-bloc-over-riverpod.mdx
│   │       ├── 📄 M-002-drift-for-local-storage.mdx
│   │       └── 📄 M-003-firebase-push-notifications.mdx
│   │
│   ├── 📁 backend/ ⭐ (Platform-specific Level 2)
│   │   ├── 📄 index.mdx (Backend Architecture Overview)
│   │   ├── 📄 laravel-standard.mdx (Standard architecture for ALL Laravel apps)
│   │   │
│   │   ├── 📁 rfcs/ ⭐ NEW
│   │   │   ├── 📁 open/
│   │   │   │   └── 📄 B-004-rate-limiting-implementation.mdx
│   │   │   └── 📁 resolved/
│   │   │
│   │   └── 📁 decisions/ (Platform-wide backend ADRs - Level 2)
│   │       ├── 📄 B-001-repository-pattern-mandatory.mdx
│   │       ├── 📄 B-002-api-versioning-strategy.mdx
│   │       └── 📄 B-003-redis-for-caching.mdx
│   │
│   └── 📁 web/ ⭐ (Platform-specific Level 2)
│       ├── 📄 index.mdx (Web Architecture Overview)
│       ├── 📄 vue-standard.mdx (Standard architecture for ALL Vue apps)
│       │
│       ├── 📁 rfcs/ ⭐ NEW
│       │   ├── 📁 open/
│       │   └── 📁 resolved/
│       │
│       └── 📁 decisions/ (Platform-wide web ADRs - Level 2)
│           ├── 📄 W-001-composition-api-mandatory.mdx
│           ├── 📄 W-002-pinia-over-vuex.mdx
│           └── 📄 W-003-playwright-for-e2e.mdx

├── 📁 applications/
│   ├── 📄 index.mdx (All Applications Overview)
│   │
│   └── 📁 solutech-sat/
│       ├── 📄 index.mdx (What is SAT? Product overview, user personas)
│       ├── 📄 architecture.mdx (High-level: Mobile + Backend + Web, data flow)
│       ├── 📄 getting-started.mdx (Which repos to clone, quick start)
│       │
│       ├── 📁 mobile/
│       │   ├── 📄 index.mdx (Overview + link to repo)
│       │   └── 📄 repo-link.mdx (👉 Detailed docs in solutech-sat-mobile/docs)
│       │
│       ├── 📁 backend/
│       │   ├── 📄 index.mdx (Overview + link to repo)
│       │   └── 📄 repo-link.mdx (👉 Detailed docs in solutech-sat-backend/docs)
│       │
│       ├── 📁 web/
│       │   ├── 📄 index.mdx (Overview + link to repo)
│       │   └── 📄 repo-link.mdx (👉 Detailed docs in solutech-sat-web/docs)
│       │
│       └── 📄 operations.mdx (Where to check logs, monitoring dashboards)

├── 📁 teams/
│   ├── 📄 index.mdx (Engineering Teams)
│   ├── 📄 mobile.mdx (Mission, members, tech stack)
│   ├── 📄 backend.mdx
│   ├── 📄 qa.mdx
│   ├── 📄 security.mdx
│   ├── 📄 data.mdx
│   └── 📄 design.mdx

├── 📁 infrastructure/
│   ├── 📄 index.mdx (Infrastructure Overview)
│   ├── 📄 environments.mdx (Dev, Staging, Production)
│   ├── 📄 ci-cd.mdx (GitHub Actions, deployment pipeline)
│   ├── 📄 monitoring.mdx (Where to check metrics)
│   └── 📄 incident-runbooks.mdx (Common issues, how to resolve)

├── 📁 career/
│   ├── 📄 index.mdx (Career Development)
│   ├── 📄 career-ladder.mdx (Link to official Google Drive PDF)
│   ├── 📄 performance-framework.mdx (How performance is measured)
│   ├── 📄 promotion-process.mdx (How to get promoted)
│   ├── 📄 mentorship.mdx (How mentorship works)
│   └── 📄 learning-resources.mdx ⭐ (Books, courses, conferences)

└── 📁 reference/
    ├── 📄 glossary.mdx (Terms, acronyms)
    ├── 📄 jira-workflow.mdx (Status definitions)
    └── 📄 useful-links.mdx (Google Drive, GitHub, Jira, etc.)

What Belongs in Fumadocs

MUST be in Fumadocs:

  • Onboarding guides (first week, first month)
  • Company culture and values
  • Cross-team processes (sprint, code review, deployment)
  • Learning & Research Framework
    • How to track personal learning (PROCESS, not actual logs)
    • Show & Tell process (HOW it works, WHEN, FORMAT)
    • Tech Talks process (HOW to propose/deliver)
    • Knowledge sharing best practices
    • Spike process guidelines
    • Learning budget process (HOW to request, WHAT qualifies)
  • RFC Process & Active RFCs
    • RFC workflow and templates
    • Active RFC registry (auto-updated)
    • Research guidelines
    • How to prevent duplicate research
  • BDD process and guidelines
    • BDD workflow and Three Amigos process
    • How to write good Gherkin scenarios
    • Feature file organization standards
    • Step definition best practices
    • Test data management
    • BDD best practices and anti-patterns
  • Platform-specific standard architectures
    • Mobile: /architecture/mobile/flutter-standard.mdx
    • Backend: /architecture/backend/laravel-standard.mdx
    • Web: /architecture/web/vue-standard.mdx
  • Company-wide architectural decisions
    • ADRs in /architecture/decisions/ (Level 1)
    • Platform ADRs in /architecture/<platform>/decisions/ (Level 2)
  • Engineering standards (coding, API, testing)
  • System-level architecture (how all systems connect)
  • Links to repository documentation
  • Career guidance and interpretation
    • How to understand your performance reviews
    • How the 5 KPIs work (with examples)
    • How to prepare for promotion
    • How to grow your career at Solutech
    • Links to official documents in Google Drive
  • Tool inventory and access guides

Must NOT be in Fumadocs:

  • Detailed setup instructions (that's in repos)
  • Code examples or implementation details
  • Actual BDD feature files (that's in repos)
  • Actual step definitions (that's in repos)
  • Application-specific RFCs (that's in repos)
  • Application-specific ADRs (that's in repos - Level 3)
  • API endpoint documentation (that's in repos)
  • Official career ladder/performance framework PDFs (that's in Google Drive)
  • Actual performance reviews (that's in Google Drive)
  • Actual promotion packets (that's in Google Drive)
  • Personal learning logs (that's in Google Drive)
  • Learning budget tracking (actual requests/approvals) (that's in Google Drive) ⭐
  • Show & Tell logs and recordings (that's in Google Drive) ⭐
  • Tech Talk schedules and recordings (that's in Google Drive) ⭐
  • Meeting notes (Architecture Guild, Leadership, etc.) (that's in Google Drive) ⭐
  • Performance review documents (that's in Google Drive)
  • Meeting notes (that's in Google Drive)

Content Guidelines

SectionPurposeLink Strategy
getting-started/Onboard new engineersSelf-contained + links to repos
how-we-work/Company-wide processesSelf-contained
how-we-work/learning-and-research/Learning & knowledge sharing PROCESSSelf-contained + links to Google Drive logs
how-we-work/architecture-decisions/RFC & ADR processesSelf-contained + templates
standards/Cross-cutting standardsSelf-contained
architecture/System design decisionsSelf-contained + diagrams
architecture/rfcs/Active researchUpdated weekly, links to resolved
applications/Product overviewsHigh-level + heavy linking to repos
teams/Team missionsBrief + links to repos for details
career/Career guidanceLink to official Google Drive docs

Layer 3: Repository Documentation

Design Principles

  • Mandatory minimum: Every repo MUST have README, CONTRIBUTING, ARCHITECTURE
  • Living alongside code: Docs change with code
  • Implementation-focused: How to build, test, deploy THIS app
  • Self-contained: Developers shouldn't need to leave the repo

Standard Repository Structure

📁 solutech-sat-mobile/ (or any application repo)

├── 📄 README.md ⭐ MANDATORY

├── 📄 CONTRIBUTING.md ⭐ MANDATORY

├── 📄 CHANGELOG.md ⭐ MANDATORY

├── 📁 docs/ ⭐ MANDATORY
│   ├── 📄 architecture.md ⭐ MANDATORY
│   ├── 📄 setup.md ⭐ MANDATORY
│   ├── 📄 development.md ⭐ MANDATORY
│   ├── 📄 testing.md ⭐ MANDATORY
│   ├── 📄 deployment.md (If team deploys)
│   ├── 📄 api.md (For backend services)
│   ├── 📄 troubleshooting.md
│   │
│   ├── 📁 rfcs/ ⭐ NEW (Application-specific research - Level 3)
│   │   ├── 📄 README.md (How to use RFCs in this repo)
│   │   ├── 📁 open/ (Currently researching)
│   │   │   └── 📄 001-evaluating-offline-sync.md
│   │   └── 📁 resolved/ (Became ADRs or were rejected)
│   │       └── 📄 001-offline-sync-decision.md → ADR-002
│   │
│   └── 📁 adrs/ (Application-specific decisions ONLY - Level 3)
│       ├── 📄 README.md (How to write ADRs)
│       ├── 📄 template.md
│       ├── 📄 001-why-we-need-custom-cache.md
│       ├── 📄 002-offline-sync-strategy.md
│       └── 📄 003-push-notification-provider.md

├── 📁 features/ ⭐ MANDATORY (BDD Gherkin behaviour specifications)
│   ├── 📄 authentication.feature
│   ├── 📄 order-management.feature
│   ├── 📄 customer-management.feature
│   └── 📄 offline-sync.feature

├── 📁 test/
│   ├── 📁 unit/
│   ├── 📁 integration/
│   └── 📁 e2e/

└── 📁 .github/
    └── 📁 workflows/
        ├── 📄 ci.yml
        └── 📄 bdd-report.yml

Mandatory Repository Documentation

Every repository MUST have:

  1. README.md - Quick start and overview
  2. CONTRIBUTING.md - How to contribute
  3. CHANGELOG.md - Version history
  4. docs/architecture.md - System design (references platform standard + app-specific decisions)
  5. docs/setup.md - Environment setup
  6. docs/development.md - Development workflow
  7. docs/testing.md - Testing guide
  8. docs/rfcs/ - Application-specific research ⭐
  9. docs/adrs/ - Application-specific decisions ⭐

Learning & Research Framework

The Spectrum of Knowledge Work

Personal Learning → Team Sharing → Spike → RFC → ADR
     ↓                 ↓           ↓      ↓     ↓
  No docs        Slack/Demo    Branch  Formal  Decision

1. Personal Learning (Individual Growth)

When: Learning new skills, following tutorials, reading docs
Where: Google Drive (People/Learning-Plans/2026/YourName-Learning-Log.gsheet)
Process: Track in learning log, discuss in 1:1s, apply to work

Example: Alice learning advanced Dart null safety → logs hours → no RFC needed

2. Team Knowledge Sharing (Informal)

When: Discovered something useful, solved interesting problem
Where: Slack, Show & Tell sessions, Tech Talks
Process:

  • Weekly Show & Tell (Fridays, 30 min, recorded)
  • Monthly Tech Talks (45 min deep dives)
  • Slack threads in team channels

Example: Bob learned clever list optimization → demos in Show & Tell → posts code snippet

3. Exploratory Spike (Time-boxed POC)

When: Need hands-on validation before deciding
Where: Git branch spike/feature-name
Process:

  • Time-box: 1-5 days max
  • Document findings in branch README
  • Demo to team → Delete or promote to RFC

Example: Charlie tries GraphQL subscriptions for 2 days → finds it adds complexity → shares findings → no RFC

4. Structured Research (RFC)

When: Multiple options, affects team/company, needs input
Where: Fumadocs (/architecture/rfcs/) or Repo (docs/rfcs/)
Process: See Architecture Decision Process below

5. Formal Decision (ADR)

When: Decision is made and must be documented
Where: Fumadocs or Repo depending on level
Process: See Architecture Decision Process below

Preventing Duplicate Research

Before Starting Research:

Check RFC Registry - Is someone already researching this?
Ask in Slack - #engineering-architecture: "Anyone researching X?"
Review Technology Radar - Do we already have guidance?
Search Past ADRs - Has this been decided before?

Communication Strategy:

  • Announce intent early in #engineering-architecture
  • Weekly Architecture Digest (automated Slack message)
  • RFC registry updated weekly in Fumadocs

Architecture Decision Process

Two-Stage Process: RFC → ADR

Research Phase (RFC) → Decision Phase (ADR)
    2-4 weeks              Final

Three Levels of Decisions

LevelScopeOwnerLocationExample
Level 1Company-wideCTO/VP Eng/architecture/decisions/Flutter vs React Native
Level 2All apps of one platformPlatform Tech Lead/architecture/<platform>/decisions/BLoC vs Riverpod for ALL mobile
Level 3Single applicationTeam Tech Lead<repo>/docs/adrs/Offline-first for SAT

RFC (Request for Comments) Template

# RFC-XXX: [Question Being Researched]

**Status:** Open | Under Review | Resolved → ADR-XXX | Rejected  
**Level:** Company-Wide | Platform | Application  
**Author:** Name  
**Date:** YYYY-MM-DD

## Problem Statement

What problem are we solving?

## Options Investigated

### Option 1: [Name]

**Pros:** ...  
**Cons:** ...  
**Spike Results:** Link to branch

### Option 2: [Name]

...

## Comparison Matrix

| Criteria    | Option 1 | Option 2 |
| ----------- | -------- | -------- |
| Performance | Fast     | Medium   |

## Open Questions

- Question 1?

## Next Steps

- [ ] Task (Owner, Due Date)

## Resolution

**Date:** YYYY-MM-DD  
**Outcome:** Chose Option X  
**ADR:** Link to ADR-XXX

ADR Template

# ADR-XXX: [Decision Made]

**Status:** Accepted | Superseded by ADR-YYY  
**Date:** YYYY-MM-DD  
**Level:** 1 | 2 | 3  
**Platform:** Mobile | Backend | Web (if Level 2/3)

## Context

What problem does this solve?

## Decision

We will [decision].

## Consequences

**Positive:**

- Benefit 1

**Negative:**

- Trade-off 1

## Related

- RFC-XXX (research that led here)
- ADR-YYY (supersedes this)

Approval Process by Level

Level 1 (Company-Wide):

  1. RFC drafted by Architecture Guild → 2-4 weeks research
  2. Reviewed with all platform leads
  3. Approved by CTO/VP Engineering
  4. ADR published in /architecture/decisions/
  5. Announced in #engineering-all

Level 2 (Platform):

  1. RFC drafted by platform architect → 2-3 weeks research
  2. Reviewed with platform guild
  3. Approved by platform tech lead
  4. ADR published in /architecture/<platform>/decisions/
  5. Announced in platform channel

Level 3 (Application):

  1. RFC (optional) or team discussion → 1-2 weeks
  2. Tech lead approves
  3. ADR documented in <repo>/docs/adrs/
  4. No announcement needed
  5. Exception: If deviating from Level 2, must request exception

Decision Tree: Where Does This Go?

For Documentation

Q: Is this an official record?
→ Yes: Google Drive (reviews, policies, compliance)

Q: Is this about how we work together across teams?
→ Yes: Fumadocs (processes, standards, onboarding)

Q: Is this about how to build/test/deploy a specific app?
→ Yes: Repository (setup, API docs, implementation)

Q: Is this living specifications?
→ Yes: Repository (features/ for Gherkin)

Q: Is this a standard architecture used across apps?
→ Yes: Fumadocs (/architecture/<platform>/)

For Learning & Research

Q: Is this personal skill development?
→ Yes: Learning Log (Google Drive)

Q: Worth sharing but not deciding?
→ Yes: Show & Tell / Slack

Q: Need hands-on validation?
→ Yes: Spike (time-boxed branch)

Q: Multiple options, needs structured research?
→ Yes: RFC (Fumadocs or repo)

Q: Decision is final?
→ Yes: ADR (Fumadocs or repo)

For Architectural Decisions

Q: Affects ALL platforms (mobile + backend + web)?
→ Level 1: Fumadocs /architecture/decisions/

Q: Affects all apps of ONE platform?
→ Level 2: Fumadocs /architecture/<platform>/decisions/

Q: Affects only THIS specific app?
→ Level 3: Repository docs/adrs/


Maintenance & Ownership

Update Responsibilities

LayerOwnerUpdate TriggerFrequency
Google Drive: PoliciesHR + LeadershipPolicy changesQuarterly
Google Drive: PeopleManagersPerformance cyclesSemi-annually
Google Drive: Meeting NotesMeeting organizersAfter each meetingWeekly/Monthly
Google Drive: Learning LogsIndividual engineersPersonal learningOngoing
Google Drive: Show & Tell/Tech TalksEvent organizersAfter each eventWeekly/Monthly
Google Drive: BudgetFinance + LeadershipBudget requestsOngoing
Fumadocs: ProcessesArchitecture Guild + Platform LeadsProcess changesMonthly
Fumadocs: RFC RegistryArchitecture GuildNew RFCs opened/resolvedWeekly
Fumadocs: ADRsDecision AuthorsNever (append only)Never
Repository DocsDevelopment TeamsCode changesContinuously

Governance

Architecture Guild (Bi-weekly):

  • Review open RFCs
  • Approve Level 1 & 2 ADRs
  • Update Technology Radar
  • Maintain RFC registry

Platform Guilds (Monthly):

  • Review platform-specific RFCs
  • Approve Level 2 ADRs
  • Update platform standards

Documentation Review (Quarterly):

  • Audit for outdated content
  • Fix broken links
  • Update examples
  • Archive obsolete docs

Key Principles

Single Source of Truth - Each piece of info lives in ONE place
Link, Don't Duplicate - Reference authoritative sources
Document Decisions, Not Explorations - ADRs are final, RFCs are research
Make Knowledge Discoverable - Clear structure, good search
Preserve Context - Why decisions were made (RFCs + ADRs)
Collaborate Early - Prevent duplicate research
Appropriate Formality - Not everything needs an RFC
Process vs Records - HOW TO goes in Fumadocs, WHAT HAPPENED goes in Google Drive ⭐


Quick Reference Card

"Where do I put this?"

Content TypeLocationTool
RECORDS (What happened, who, when)
Performance reviewPeople/Performance-Reviews/Google Drive
Learning logPeople/Learning-Plans/Google Drive
Show & Tell logMeeting-Notes/Show-and-Tell/Google Drive
Tech Talk scheduleMeeting-Notes/Tech-Talks/Google Drive
Architecture Guild notesMeeting-Notes/Architecture-Guild/Google Drive
Learning budget requestBudget/Learning-Development-Budget/Google Drive
Career ladder PDFOfficial-Policies/Google Drive
PROCESSES (How to do things)
BDD process guide/how-we-work/bdd/Fumadocs
Show & Tell process/how-we-work/learning-and-research/knowledge-sharing.mdxFumadocs
Tech Talk process/how-we-work/learning-and-research/tech-talks.mdxFumadocs
Learning budget process/how-we-work/learning-and-research/learning-budget.mdxFumadocs
RFC process/how-we-work/architecture-decisions/Fumadocs
Mobile standard architecture/architecture/mobile/Fumadocs
RESEARCH & DECISIONS
Company-wide RFC/architecture/rfcs/open/Fumadocs
Platform RFC/architecture/<platform>/rfcs/Fumadocs
App RFCdocs/rfcs/Repository
Company ADR/architecture/decisions/Fumadocs
Platform ADR/architecture/<platform>/decisions/Fumadocs
App ADRdocs/adrs/Repository
IMPLEMENTATION
Gherkin featuresfeatures/Repository
Setup instructionsdocs/setup.mdRepository
Spike POCspike/feature-nameGit branch

"What process do I follow?"

ActivityProcess
Personal learningTrack in learning log → Discuss in 1:1
Share knowledgeShow & Tell (Friday) or Tech Talk (monthly)
Quick validationSpike (1-5 days) → Demo findings
Research decisionRFC (2-4 weeks) → Architecture Guild review → ADR
Make Level 3 decisionTeam discussion → Tech lead approves → ADR in repo
Make Level 2 decisionPlatform RFC → Guild review → ADR in Fumadocs
Make Level 1 decisionCompany RFC → Leadership review → ADR in Fumadocs