SOP: SOP Standards & Governance
Document ID: WMS-000 Version: 1.0 Effective date: 04/30/2026 Owner: Warehouse Operations Manager Next review: [six months from effective date] Applies to: Anyone authoring or revising a WMS SOP
1. Purpose
This document defines how WMS Standard Operating Procedures are authored, reviewed, distributed, and retired. It exists so that the SOP library stays accurate, consistent, and actually used by staff. SOPs that are inconsistent, outdated, or undiscoverable become wallpaper — worse than having no SOP at all, because they give a false sense of documentation.
2. Scope
In scope:
- All SOPs in the WMS-* series
- The template, naming convention, and storage location
- The review and retirement process
Out of scope:
- Non-warehouse SOPs (finance, HR, sales ops)
- One-off runbooks and incident postmortems (stored separately in
/docs/runbooks/)
3. Roles & permissions
| Role | Author a draft | Approve a new SOP | Revise an existing SOP | Retire an SOP |
|---|---|---|---|---|
| STAFF | ✓ | ✓ (with owner review) | ||
| MANAGER | ✓ | ✓ | ✓ | |
| ADMIN | ✓ | ✓ | ✓ | ✓ |
SOP ownership is by role, not by person. If the named owner leaves the role, the SOP transfers automatically to their successor. Never list a personal name as the owner.
4. Procedures
4.1 Document ID & naming convention
Use when: Creating any new SOP.
Document IDs follow the pattern WMS-[SERIES]-[###]:
000— FoundationsREC— Receiving & Putaway (series 100)INV— Inventory (series 200)PICK,PACK,SHIP— Outbound (series 300)RET— Returns (series 400)TASK— Work tasks (series 500)AUD— Audits & incidents (series 900)
Numbers are assigned in creation order within the series. Never reuse an ID — retired SOPs keep their ID and their history.
Filenames match the document ID: WMS-INV-001-inventory-activity.md.
4.2 Authoring a new SOP
Use when: A new feature ships, a new procedure is adopted, or a recurring incident reveals an undocumented gap.
- Check
SOP-INVENTORY.md(the library index) for an existing SOP that covers this. If one exists, revise it instead (§4.3). - Copy
_TEMPLATE.mdto the correct path:/docs/sops/WMS-[SERIES]-[###]-short-name.md. - Draft by shadowing, not by inventing. Watch the best operator perform the procedure. Transcribe what they do. Show them the draft. Iterate with them, not around them.
- Fill every section of the template. If a section doesn't apply, write "N/A" with a one-sentence explanation — do not delete the section.
- Add the new SOP to
SOP-INVENTORY.mdwith its ID, title, owner, and status. - Open a pull request with the
docs/soplabel. Request review from the owner role and one SME on the floor. - On merge, announce in
#warehouse-opswith a link.
⚠ Do not backfill SOPs retroactively by writing them from memory after the fact. An SOP that doesn't match the real procedure is worse than none.
4.3 Revising an existing SOP
Use when: A procedure changes, a new reason code is added, a feature changes the UI, or a review date has passed.
- Bump the version number. Patch changes (typo, clarification) go
1.0 → 1.1. Material changes (new step, removed step, permission change) go1.0 → 2.0. - Add a row to §9 Revision history describing what changed and why.
- Update the effective date and next review date.
- Open a PR with the
docs/soplabel and the ID in the title. - If the change is material (major version bump), require re-training acknowledgment from affected roles before merging.
4.4 Six-month review
Use when: An SOP's "Next review" date has passed.
- The SOP owner is pinged automatically (via calendar reminder or weekly digest).
- Owner either:
- Re-affirms the SOP is current → bump patch version, push next review date six months out.
- Revises the SOP → follow §4.3.
- Flags the SOP as stale or wrong → mark
STATUS: UNDER_REVIEWin the inventory and block usage until revised.
- If an owner doesn't respond within 14 days, the WMS admin reassigns ownership or retires the SOP.
4.5 Retiring an SOP
Use when: A procedure is no longer performed (feature removed, workflow replaced, or consolidated into another SOP).
- Mark the SOP as
RETIREDin §9 Revision history with the date and reason. - Move the file to
/docs/sops/retired/. - Update
SOP-INVENTORY.mdstatus toRETIRED. - If another SOP replaces it, add a "Superseded by" link at the top of the retired doc.
- Never delete a retired SOP. Auditors may need it.
4.6 Linking to code, features, or tickets
SOPs reference the system they document. Use:
#entity-type/idfor database entities (e.g.,#inventory-unit/cuid123)- Relative links to other SOPs by ID (
see WMS-INV-001 §4.2) - Commit/PR links for major procedure changes driven by code
- Never reference personal tools (Notion pages, private docs) that won't outlive the team
5. Reference
5.1 Document format rules
- Markdown, not Word. Source of truth is the git repo.
- Line length: unlimited (don't hard-wrap). Rendering handles wrapping.
- Screenshots: PNG, stored under
/docs/sops/img/, namedWMS-[ID]-step-[#].png. - No external image hosts. Everything lives in the repo.
- Tables for structured data. Numbered lists for procedures. Prose only for context.
5.2 Where SOPs live
- Source of truth:
/docs/sops/in the wms-crm monorepo - Rendered for floor staff:
docs.hq.team(Docusaurus site, auto-deployed from main) - Floor cards (laminated): PDF exports generated from the
floor-cardtagged sections, taped at every station - Distributed formats: docs site for reading, PDF for printing. No Word, no Notion, no Google Docs — those drift.
5.3 Required sections per SOP
Every SOP must have sections 1–9 from the template. If a section genuinely doesn't apply, it reads "N/A — [reason]" rather than being omitted. This is enforced in PR review.
5.4 Related SOPs
_TEMPLATE.md— starting point for new SOPsSOP-INVENTORY.md— live list of all SOPs with status
6. Audit & compliance
Every SOP change is a git commit, signed by the author. The full revision history of every procedure is reconstructable from git log. Quarterly, the Warehouse Operations Manager reviews:
- Count of overdue reviews (SOPs past their "Next review" date)
- Count of
UNDER_REVIEWSOPs (flagged but not yet revised) - Count of SOPs without recent acknowledgment from affected staff
All three should trend toward zero. Rising numbers indicate the governance process is failing and needs attention.
7. Troubleshooting
| Symptom | Cause | Resolution |
|---|---|---|
| Floor staff doing something different from the SOP | SOP is out of date, or staff weren't trained on the revision | Revise SOP to match reality OR retrain — do not punish mismatch |
| Two SOPs contradict each other | One wasn't updated when the other was | Revise both in the same PR; note the conflict in both revision histories |
| Nobody knows who owns an SOP | Owner role changed and wasn't updated | WMS admin reassigns ownership based on current org chart |
| SOP written but no one reads it | Wrong format for audience (prose for floor staff) | Extract a floor card; consider a 30-second Loom |
8. Escalation
- Procedure question during an operation: Don't pause for the SOP — ask a lead. Update the SOP afterward if the answer wasn't there.
- Suspected SOP is wrong: Flag it in
#warehouse-ops, tag the owner. Do not silently ignore. - Governance questions: Warehouse Operations Manager.
9. Revision history
| Version | Date | Author | Changes |
|---|---|---|---|
| 1.0 | [DATE] | [NAME] | Initial release — defines template, naming, review cadence, retirement process |