Install
openclaw skills install @encryptshawn/build-docs-creatorProduces a complete, standardized build-documentation package for developers from a project's accumulated design work — a product overview (BRD-style), requirements spec (SRS-style), technical design doc (DD-style), and interface source code with a reference guide, all zipped together. Use when the user asks to 'create build docs,' 'generate the doc package,' 'turn this project into docs for devs,' 'produce an SRS/BRD/DD package,' or wants a developer handoff covering both what to build and why. Works from a Claude Project's conversation history and artifacts (including Claude Design/HTML interfaces), and can incorporate partial docs brought in from elsewhere (e.g. ChatGPT-authored requirements) alongside the project's own content. Do NOT use for a single narrow doc request — this skill's default output is the full package. Not for ongoing SDLC docs (test plans, runbooks, sprint artifacts) — pre-build documentation only.
openclaw skills install @encryptshawn/build-docs-creatorSynthesizes everything designed and decided in a project — chat history, artifacts, Claude Design / HTML interfaces built along the way, and any partial documentation brought in from elsewhere (commonly ChatGPT-authored initial requirements) — into one standardized, zipped documentation package that gives a development team everything they'd normally expect at project handoff: what the product is and why it exists, what it must do, how it's designed, what the interfaces are, and how it all traces together.
Every package this skill produces has the same shape and the same rigor regardless of which project it's run against. That standardization is the point — a developer picking up any package from this skill should find the same documents in the same order covering the same ground.
The common origin story for a project using this skill:
This matters because the pasted-in requirements are frequently stale relative to what actually got designed and built afterward. See "Reconciling imported requirements" below — catching that drift is one of the most valuable things this skill does.
The single biggest failure mode is silently filling gaps with plausible-sounding detail. If the source material doesn't specify something — what a button wires to, whether two entities are the same, what auth model is used — the output states that gap plainly in the relevant document's Open Questions section. It never asserts an invented answer as fact. A shorter, honest package beats a longer, fabricated one. This applies to every document in the package.
Two corollaries:
Detect which mode applies from what the user provides; ask only if genuinely ambiguous:
When requirements were imported from an external tool and the project then evolved, actively check for drift:
This reconciliation is a core deliverable, not a nicety — an imported spec that quietly disagrees with the built product is exactly what derails a dev handoff.
Pick a writable working directory (create it; don't assume it exists):
WORKDIR=$(mktemp -d) # or a named dir under a writable location
Then gather:
conversation_search/recent_chats if relevant history isn't in the current context — search by feature/component names, not meta-words like "discussed").Assemble a working list (internal scratch — not shipped) capturing, each tagged with its source:
Each output has a reference file specifying required sections, format, and standard. Read the relevant reference file immediately before drafting that document — do not draft from memory of the structure:
| Output | Reference file |
|---|---|
00-product-overview.md (BRD) | references/product-overview.md |
01-requirements.md (SRS) | references/requirements.md |
02-design.md (DD) | references/design.md |
03-interfaces/ | references/interfaces.md |
04-traceability-matrix.md | references/traceability.md |
Draft in this order — later documents depend on identifiers established in earlier ones (requirements get FR-/NFR- IDs; the traceability matrix references those IDs plus interface filenames).
Keep every document as short as the source honestly supports. Every substantive claim must be traceable to something discussed or built; if it isn't, it belongs in Open Questions, not stated as settled.
Target structure:
[ProjectName]-build-docs/
├── README.md
├── 00-product-overview.md
├── 01-requirements.md
├── 02-design.md
├── 03-interfaces/
│ ├── html/
│ │ └── (one file per interface, real runnable source)
│ └── interface-reference.md
├── 04-traceability-matrix.md
└── _source-manifest.md
README.md — indexes every document, states the reading order and who each doc is for, and surfaces the top-level honesty signals (total open questions, any imported-vs-built conflicts, which docs are thin)._source-manifest.md — an auditable list of exactly what source material fed the package: which Project conversations (by title/date if available), which artifacts (by name), and which imported documents. This makes the package traceable back to its inputs.Assemble and zip:
PKG="$WORKDIR/[ProjectName]-build-docs"
mkdir -p "$PKG/03-interfaces/html"
# write all files into place
( cd "$WORKDIR" && zip -r "[ProjectName]-build-docs.zip" "[ProjectName]-build-docs/" )
Copy the zip to the outputs directory and present it.
If interface HTML has unrunnable external dependencies, keep the real source as-is and note the dependency in that file's interface-reference.md entry rather than shipping a silently broken file or "fixing" it by inventing code.
After delivering, state plainly: