Project Overview Document Generator
Produce a single, professional .docx document that lets a non-technical
reader (product owner, manager, new hire) understand what a project is, why
it exists, and who's involved — with zero architecture or implementation
detail. Technical readers get that from the companion architecture-document
and high-level-design skills.
Sections (in this order)
Cover page, Version History, Document Approval, Revision Log, and the Table
of Contents are inserted automatically by the builder — your sections array
starts at "1. Project Overview".
| # |
Section |
Content |
Diagram? |
| 1 |
Project Overview |
2-3 paragraph plain-language summary: what the system does, who uses it, why it exists |
|
| 2 |
Business Objectives |
Bullet list of business goals and how success is measured |
|
| 3 |
Scope |
h2 subsections "In Scope" / "Out of Scope", each a bullet list |
|
| 4 |
Assumptions |
Bullet list of assumptions the project relies on |
|
| 5 |
Constraints |
Bullet list — technical, budget, timeline, regulatory |
|
| 6 |
Stakeholders |
Table: Name/Team, Role, Responsibility, Contact |
|
| 7 |
Business Workflow |
Narrative of the end-to-end business process |
Business Process Flow diagram |
| 8 |
Appendix |
Related documents, reference links (link to the other 7 handover documents if they exist) |
|
Diagram Policy
Applies to the .docx path only — Markdown embeds Mermaid source
directly instead of rendering anything (see "Output Format" below).
Prefer a real Mermaid diagram — rendered via mmdc and embedded with
B.diagramImage() — over diagramPlaceholder(), but only once you have
concrete structure to draw (real names, not "TBD"). Read
references/diagram-generation.md when you're actually about to render one
— it has the full build order, the bundled config
(assets/mermaid-config.json), the exact mmdc flags, and token-saving
tips. Skip it entirely if this document ends up needing no diagrams.
Missing Information Policy
Never invent business objectives, stakeholders, or workflow details you have
no basis for — a fabricated-but-plausible detail is worse than an honest gap.
Use toBeCompleted("...") for any section you lack real input for, explaining
what's needed, and still generate everything else. If the user has a codebase,
README, or existing docs available, prefer pulling real content from those
over asking them to recall everything from memory.
Output Format
Ask the user which output format they want, unless they've already said so in
this request (e.g., "as a docx", "in markdown," "just give me an .md file") —
a quick single-choice question is enough, don't block on it otherwise:
Word document (.docx) — the default assumption if the person hasn't
specified and their context suggests a formal deliverable. Follow "Using
the builder" below.
Markdown (.md) — no script needed, write the file directly. Use these
conventions so it stays structurally equivalent to the docx version:
Front matter: instead of a cover page, open with the title as an #
heading, the project name as an italic subtitle line, then a metadata
table instead of separate Version History / Approval / Revision Log
tables:
# Project Overview
*Acme Order Platform*
| Field | Value |
|---|---|
| Version | 0.1 |
| Author | Jane Doe |
| Date | 2026-07-19 |
| Status | Draft |
| Approved By | Jane Doe (Tech Lead) |
Headings: #/##/###/#### matching the same section levels used in
the table above — don't flatten everything to one level, that's what
keeps the document skimmable and consistent with the docx version.
Tables: standard Markdown tables.
Diagrams — unlike the .docx path, don't render or embed an image here.
Write the actual Mermaid source directly in a fenced code block; GitHub,
GitLab, Obsidian, and most modern Markdown viewers render mermaid code
blocks natively, so this is a real diagram, not a placeholder:
```mermaid
flowchart TD
A[Client] --> B[API Gateway]
B --> C[Order Service]
C --> D[(Database)]
```
Only fall back to a text placeholder if you don't yet have concrete
enough detail to draw something real (mirrors toBeCompleted above):
> 📊 **DIAGRAM PLACEHOLDER — TO BE COMPLETED**
> Not enough detail yet to draw the System Architecture Diagram — need
> the actual component names and how they connect.
"To be completed" callout — same blockquote treatment:
> ⚠️ **TO BE COMPLETED**
> Explanation of what input is needed to fill this in.
Save as Project_Overview.md instead of Project_Overview.docx.
Workflow
Ask the output format first (see "Output Format" above). For Markdown, skip straight to writing the file using those conventions — the numbered steps below describe the .docx path.
- Gather what's available: project name/description, business objectives,
scope, stakeholders — ask if not already given, but don't block on it.
- Draft each section as data using the builder functions below.
- Build the
.docx with scripts/docx_builder.js.
- Skip PDF conversion by default —
docx_builder.js is already tested and
hardened (table widths and text alignment are enforced at the library
level), so routine generations don't need a re-render just to confirm it
worked. Only convert to PDF and view it if the user explicitly asks for
visual verification, or if something about this generation is unusual
(e.g., a new kind of content the library hasn't handled before, or a
reported rendering problem). When you do need it: soffice --headless --convert-to pdf <file>.docx (or libreoffice --headless ...), then
pdftoppm -jpeg -r 100 <file>.pdf page and view the images.
- Save to
/mnt/user-data/outputs/Project_Overview.docx (or .md if that's the chosen format) and present it.
Using the builder (for the .docx path)
This library requires the docx npm package. Before running any script,
check it's available with node -e "require('docx')"; if that fails, install
it with npm install docx in the working directory first — don't assume it's
pre-installed, since that varies by environment.
const B = require("./scripts/docx_builder.js");
const sections = [
B.h1("1. Project Overview"),
B.para("Acme Order Platform is an internal service that ..."),
B.h1("2. Business Objectives"),
...B.bullets(["Reduce manual order-processing time by 40%", "..."]),
B.h1("3. Scope"),
B.h2("3.1 In Scope"),
...B.bullets(["Order intake and validation"]),
B.h2("3.2 Out of Scope"),
...B.bullets(["Payment processing (handled by Acme Billing)"]),
B.h1("6. Stakeholders"),
B.table(["Name / Team", "Role", "Responsibility", "Contact"],
[["Jane Doe", "Tech Lead", "Owns architecture decisions", "jane@acme.com"]],
[2400, 2000, 3200, 1400]),
B.h1("7. Business Workflow"),
B.para("Orders flow from intake through validation, allocation, and dispatch."),
// Prefer B.diagramImage(path, {caption}) with a real mmdc render when
// possible (see "Diagram Policy" above) — diagramPlaceholder() is the fallback:
B.diagramPlaceholder({
name: "Business Process Flow",
purpose: "Show the end-to-end order lifecycle from placement to fulfillment.",
recommendedContent: ["Customer", "Order Service", "Inventory Service", "Fulfillment"],
}),
];
await B.buildDocument("/mnt/user-data/outputs/Project_Overview.docx", {
docLabel: "Project Overview",
title: "Project Overview",
subtitle: "Acme Order Platform",
versionHistory: [["0.1", "2026-07-19", "Jane Doe", "Initial draft"]],
approvers: [["Jane Doe", "Tech Lead", "", ""]],
revisionLog: [],
sections,
});
Available functions: h1/h2/h3/h4, para, bullets, table(headers, rows, widths), pageBreak, toBeCompleted(explanation),
diagramPlaceholder({name, purpose, recommendedContent, notes}), and
buildDocument(path, options). Always use the heading functions (not bold
paragraphs) for section titles — Word builds the clickable Table of Contents
and Navigation Pane from real heading styles.
Success Criteria
A product owner or new hire with zero technical background should finish this
document understanding what the project is, why it matters to the business,
and who to talk to — without needing any of the companion technical documents.
1---2name: project-overview-doc3description: Generate a professional Project Overview document as a formatted Word (.docx) file — business context, objectives, scope, stakeholders, and business workflow, written for a non-technical audience (product owners, management, new joiners). Use this whenever someone asks for a "project overview," "project charter," "business context document," or wants a one-stop document explaining what a project is and why it exists, separate from its technical architecture. Part of an enterprise handover documentation suite (see also: architecture-document, high-level-design, operations-deployment-guide, support-runbook, api-documentation, database-design, release-maintenance-guide) but fully usable standalone.4---56# Project Overview Document Generator78Produce a single, professional `.docx` document that lets a non-technical9reader (product owner, manager, new hire) understand what a project is, why10it exists, and who's involved — with zero architecture or implementation11detail. Technical readers get that from the companion `architecture-document`12and `high-level-design` skills.1314## Sections (in this order)1516Cover page, Version History, Document Approval, Revision Log, and the Table17of Contents are inserted automatically by the builder — your `sections` array18starts at "1. Project Overview".1920| # | Section | Content | Diagram? |21|---|---|---|---|22| 1 | Project Overview | 2-3 paragraph plain-language summary: what the system does, who uses it, why it exists | |23| 2 | Business Objectives | Bullet list of business goals and how success is measured | |24| 3 | Scope | `h2` subsections "In Scope" / "Out of Scope", each a bullet list | |25| 4 | Assumptions | Bullet list of assumptions the project relies on | |26| 5 | Constraints | Bullet list — technical, budget, timeline, regulatory | |27| 6 | Stakeholders | Table: Name/Team, Role, Responsibility, Contact | |28| 7 | Business Workflow | Narrative of the end-to-end business process | **Business Process Flow** diagram |29| 8 | Appendix | Related documents, reference links (link to the other 7 handover documents if they exist) | |3031## Diagram Policy3233**Applies to the `.docx` path only** — Markdown embeds Mermaid source34directly instead of rendering anything (see "Output Format" below).3536Prefer a real Mermaid diagram — rendered via `mmdc` and embedded with37`B.diagramImage()` — over `diagramPlaceholder()`, but only once you have38concrete structure to draw (real names, not "TBD"). Read39`references/diagram-generation.md` when you're actually about to render one40— it has the full build order, the bundled config41(`assets/mermaid-config.json`), the exact `mmdc` flags, and token-saving42tips. Skip it entirely if this document ends up needing no diagrams.4344## Missing Information Policy4546Never invent business objectives, stakeholders, or workflow details you have47no basis for — a fabricated-but-plausible detail is worse than an honest gap.48Use `toBeCompleted("...")` for any section you lack real input for, explaining49what's needed, and still generate everything else. If the user has a codebase,50README, or existing docs available, prefer pulling real content from those51over asking them to recall everything from memory.5253## Output Format5455Ask the user which output format they want, unless they've already said so in56this request (e.g., "as a docx", "in markdown," "just give me an .md file") —57a quick single-choice question is enough, don't block on it otherwise:5859- **Word document (.docx)** — the default assumption if the person hasn't60 specified and their context suggests a formal deliverable. Follow "Using61 the builder" below.62- **Markdown (.md)** — no script needed, write the file directly. Use these63 conventions so it stays structurally equivalent to the docx version:6465 - Front matter: instead of a cover page, open with the title as an `#`66 heading, the project name as an italic subtitle line, then a metadata67 table instead of separate Version History / Approval / Revision Log68 tables:6970 ```markdown71 # Project Overview72 *Acme Order Platform*7374 | Field | Value |75 |---|---|76 | Version | 0.1 |77 | Author | Jane Doe |78 | Date | 2026-07-19 |79 | Status | Draft |80 | Approved By | Jane Doe (Tech Lead) |81 ```82 - Headings: `#`/`##`/`###`/`####` matching the same section levels used in83 the table above — don't flatten everything to one level, that's what84 keeps the document skimmable and consistent with the docx version.85 - Tables: standard Markdown tables.86 - Diagrams — unlike the `.docx` path, don't render or embed an image here.87 Write the actual Mermaid source directly in a fenced code block; GitHub,88 GitLab, Obsidian, and most modern Markdown viewers render `mermaid` code89 blocks natively, so this is a real diagram, not a placeholder:9091 ````markdown92 ```mermaid93 flowchart TD94 A[Client] --> B[API Gateway]95 B --> C[Order Service]96 C --> D[(Database)]97 ```98 ````99 Only fall back to a text placeholder if you don't yet have concrete100 enough detail to draw something real (mirrors `toBeCompleted` above):101 ```markdown102 > 📊 **DIAGRAM PLACEHOLDER — TO BE COMPLETED**103 > Not enough detail yet to draw the System Architecture Diagram — need104 > the actual component names and how they connect.105 ```106 - "To be completed" callout — same blockquote treatment:107108 ```markdown109 > ⚠️ **TO BE COMPLETED**110 > Explanation of what input is needed to fill this in.111 ```112 - Save as `Project_Overview.md` instead of `Project_Overview.docx`.113114## Workflow115116Ask the output format first (see "Output Format" above). For Markdown, skip straight to writing the file using those conventions — the numbered steps below describe the `.docx` path.1171181. Gather what's available: project name/description, business objectives,119 scope, stakeholders — ask if not already given, but don't block on it.1202. Draft each section as data using the builder functions below.1213. Build the `.docx` with `scripts/docx_builder.js`.1224. Skip PDF conversion by default — `docx_builder.js` is already tested and123 hardened (table widths and text alignment are enforced at the library124 level), so routine generations don't need a re-render just to confirm it125 worked. Only convert to PDF and view it if the user explicitly asks for126 visual verification, or if something about this generation is unusual127 (e.g., a new kind of content the library hasn't handled before, or a128 reported rendering problem). When you do need it: `soffice --headless129 --convert-to pdf <file>.docx` (or `libreoffice --headless ...`), then130 `pdftoppm -jpeg -r 100 <file>.pdf page` and view the images.1315. Save to `/mnt/user-data/outputs/Project_Overview.docx` (or `.md` if that's the chosen format) and present it.132133## Using the builder (for the .docx path)134135This library requires the `docx` npm package. Before running any script,136check it's available with `node -e "require('docx')"`; if that fails, install137it with `npm install docx` in the working directory first — don't assume it's138pre-installed, since that varies by environment.139140```javascript141const B = require("./scripts/docx_builder.js");142143const sections = [144 B.h1("1. Project Overview"),145 B.para("Acme Order Platform is an internal service that ..."),146147 B.h1("2. Business Objectives"),148 ...B.bullets(["Reduce manual order-processing time by 40%", "..."]),149150 B.h1("3. Scope"),151 B.h2("3.1 In Scope"),152 ...B.bullets(["Order intake and validation"]),153 B.h2("3.2 Out of Scope"),154 ...B.bullets(["Payment processing (handled by Acme Billing)"]),155156 B.h1("6. Stakeholders"),157 B.table(["Name / Team", "Role", "Responsibility", "Contact"],158 [["Jane Doe", "Tech Lead", "Owns architecture decisions", "jane@acme.com"]],159 [2400, 2000, 3200, 1400]),160161 B.h1("7. Business Workflow"),162 B.para("Orders flow from intake through validation, allocation, and dispatch."),163164 // Prefer B.diagramImage(path, {caption}) with a real mmdc render when165 // possible (see "Diagram Policy" above) — diagramPlaceholder() is the fallback:166 B.diagramPlaceholder({167 name: "Business Process Flow",168 purpose: "Show the end-to-end order lifecycle from placement to fulfillment.",169 recommendedContent: ["Customer", "Order Service", "Inventory Service", "Fulfillment"],170 }),171];172173await B.buildDocument("/mnt/user-data/outputs/Project_Overview.docx", {174 docLabel: "Project Overview",175 title: "Project Overview",176 subtitle: "Acme Order Platform",177 versionHistory: [["0.1", "2026-07-19", "Jane Doe", "Initial draft"]],178 approvers: [["Jane Doe", "Tech Lead", "", ""]],179 revisionLog: [],180 sections,181});182```183184Available functions: `h1`/`h2`/`h3`/`h4`, `para`, `bullets`, `table(headers,185rows, widths)`, `pageBreak`, `toBeCompleted(explanation)`,186`diagramPlaceholder({name, purpose, recommendedContent, notes})`, and187`buildDocument(path, options)`. Always use the heading functions (not bold188paragraphs) for section titles — Word builds the clickable Table of Contents189and Navigation Pane from real heading styles.190191## Success Criteria192193A product owner or new hire with zero technical background should finish this194document understanding what the project is, why it matters to the business,195and who to talk to — without needing any of the companion technical documents.