theofficeofnilsjohansson

Johansson Documentation System (JDS)

The Office of Nils Johansson — Marine, Mechanical & Industrial Engineering

Version 3.1 Effective 2026-03-25 Owner: Nils Johansson

One repository. One system. One source of truth.

This repository is the Johansson Documentation System. Every project, document, drawing, blog post, and record lives here under one unified system. JDS governs how work is created, numbered, revised, and found.


I need to…

Task Go here
Create a new document Document Creation Procedure + Templates
Start an engineering project Project Komplekt Standard + Project Template
Write a report Report Template + Examples
Submit a timesheet python3 scripts/generate-office-docs.py timesheet
Submit expenses or mileage python3 scripts/generate-office-docs.py expense or mileage
Send a formal letter Letter Template + python3 scripts/md2letter.py
Add a 3D model 3D Model Management
Write a blog post Blog Post Template
Generate a PDF python3 scripts/md2pdf.py <file.md> or python3 scripts/office2pdf.py <file.xlsx>
Run a system audit python3 scripts/jds-validate.py
Find an existing document Master Document Register
Look up the numbering system Numbering Standard
Read the full quality manual Quality Manual
Quick reference (cheat sheet) JDS Quick Reference

Core Principles

  1. Every document gets a number. No exceptions — even drafts.
  2. Revisions are tracked. Every change records who, when, and why.
  3. Git is the controlled copy. The version in this repository is the current version. Period.
  4. Write for the next person. Every document must be understandable by someone who wasn’t there.
  5. Keep it simple. The system serves the work, not the other way around.

Repository Structure

The root has four folders. Everything lives in one of them.

theofficeofnilsjohansson/
├── jds/                ← System governance (quality manual, procedures, templates, registry)
├── projects/           ← All work output (engineering, 3D models, blog)
├── scripts/            ← Automation tools (PDF generation, validation, office docs)
└── personal/           ← Non-JDS content (collections, documents, archive)

System — jds/

Folder Contents
quality-manual/ QMS-000 Quality Manual, QMS-001 Numbering, QMS-002 Retention
procedures/ PRO-001 through PRO-010 (creation, revision, audit, design, etc.)
templates/ Blank templates for every document type
examples/ Worked examples (reports, inventories, letters)
registry/ Master document register + corrective action log
assets/ Logo, fonts, colour variants

Work — projects/

Folder Contents
JDS-PRJ-MEC-001_…/ Engineering projects (JDS-PRJ-[DOM]-NNN)
3d-modeling/ 3D CAD projects (JDS-DWG-[DOM]-NNN) — procedure
blog/ Engineering blog — Live site

Tools — scripts/

Script Purpose
jds-validate.py Automated 5S audit (100+ checks)
md2pdf.py JDS document to PDF
md2letter.py Letter template to PDF
office2pdf.py Excel workbook to PDF
generate-office-docs.py Generate Excel workbooks (timesheet, expense, mileage)
logo-variants.py Generate SVG logo colour variants

Personal — personal/

Non-JDS content. Uses JDS principles for structure but not JDS document numbers.

Folder Contents
collections/ Personal collections (ROM archive)
documents/ CV, cover letters, notes
archive/ Archived past work

Active Work

JDS No. Title Status
JDS-PRJ-MEC-001 Pressure Vessel Ongoing Maintenance Program Active

Published Blog

JDS No. Title
JDS-BLG-001 Why I Started This Blog
JDS-BLG-002 What the Engine Room Teaches You About Problem-Solving
JDS-BLG-003 Why I Chose build123d for Parametric CAD

For the full system reference, see jds/README.md. For the quick cheat sheet, see Quick Reference.