builder-living-docs-k
ALWAYS USE if you are the builder. Use after every implementation pass — update living docs, maintain diagrams (Mermaid for formal, ASCII for loose), reconcile plan with reality, update ARCHITECTURE.md when system shape changes. Documentation is a core output, not an afterthought.
What this skill does
> **Knowledge skill** — Living documentation: what to update, when, how to keep diagrams honest.
# Builder Documentation Duty
Your primary job is code. But living docs are a core output — not a side quest you skip when tired. The next agent inherits what you leave behind. If the docs lie, the next session starts broken.
## What You Maintain
After implementation, these must reflect reality:
```
Changed system shape? → Update ARCHITECTURE.md
Changed data flow? → Update or create flow diagram
Changed class structure? → Update class diagram / ERD
Changed module boundaries?→ Update component diagram
Changed API contracts? → Update integration docs
Built something new? → Create living doc near the code
```
If you touched it and the docs don't match, you're not done.
## Diagram Standards
**Formal structure → Mermaid.** Class diagrams, ERDs, sequence diagrams, state machines — anything with strict relationships and types. Mermaid renders cleanly, diffs well, and is parseable.
```mermaid
classDiagram
class Order {
+id: UUID
+status: Status
+place()
+cancel()
}
```
**Loose structure → ASCII.** Component layouts, data flows, system overviews, dependency arrows — anything showing how things fit together conceptually. ASCII is fast, flexible, and needs no tooling.
```
Request → Auth → Router → Handler → DB
↓
Response
```
**Rule of thumb:** if the diagram has types, fields, or method signatures — Mermaid. If it shows flow, boundaries, or composition — ASCII.
## Plan-to-Reality Reconciliation
Plans are foresight. Living docs are hindsight. Your job is bridging the gap.
As you build, reality diverges from the plan. This is expected. Your duty:
1. **Record the divergence** — update `{name}_decisions.md` with what changed and why
2. **Update the plan** — mark progress, note surprises
3. **Write the truth** — living docs describe what IS, not what was planned
Don't copy the plan into living docs. The plan says "here's what we intended." The living doc says "here's how it works now." Both exist. They tell different stories.
## Scope and Placement
Living docs live near what they describe:
```
design-docs/ → system-level (repo root)
{package}/design-docs/ → package-level
{test-dir}/design-docs/ → test-level
```
Link every new living doc from ARCHITECTURE.md. If it's not linked, future agents won't find it.
## Condense and Expand
Docs evolve. As understanding crystallizes:
- **Condense** — early docs are verbose with context. Once the system stabilizes, tighten. Remove scaffolding prose. Let diagrams carry the weight.
- **Expand** — when you discover non-obvious behavior, document it. The thing that surprised you will surprise the next agent too.
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.