Consulting agency template
When this fits
A consulting firm (1–50 consultants), boutique agency, or solo operator with a portfolio. Most value is locked in senior consultants' heads and Google Drive graveyards. Every engagement generates frameworks, deliverables, client context, lessons learned — this template captures the intellectual capital of the firm.
The solo-operator case (fractional CMO, CTO, or advisor with 4–8 clients) is a micro-version of the same shape. Same collections, smaller volume, usually one author and one reader.
Signals this fits: work is organized by client and engagement; the firm wants to reuse frameworks across clients; onboarding new consultants is painful because context lives with seniors.
Collection skeleton
clients/ — active or past client relationships
engagements/ — time-boxed projects for clients
people/ — internal consultants and client-side contacts
deliverables/ — artifacts produced for clients (strategies, reports, decks)
frameworks/ — reusable IP (methodologies, playbooks, templates)
decisions/ — significant decisions with rationale
Six collections. Add a seventh, /retainers/ or /programs/, when recurring work outpaces one-off engagements.
Edge vocabulary
for-client— an engagement or deliverable was produced for a specific clientled-by— a consultant leads an engagement or client relationshipstaffed-by— an engagement has a team of consultantsapplied-framework— an engagement applied a framework from/frameworks/derived-from— a deliverable or framework is derived from an earlier artifactinformed-by— a decision was informed by a specific engagement or deliverableworks-at— a person works at a clientsupersedes— a decision or deliverable supersedes a prior one
Day-one questions
With 20 active clients, 30 engagements, and 10 framework nodes populated:
- "What are our active engagements?" →
context("/engagements")filtered by status - "Who's leading the Acme relationship?" → traverse
/clients/acmeforled-byedges - "Which engagements applied the positioning framework?" → traverse
/frameworks/positioningbacklinks - "What did we deliver for Globex last year?" → traverse
/clients/globexforfor-clientbacklinks from deliverables - "Who's worked with fintech clients?" → filter
/clientsby industry, traversestaffed-byedges - "What's the best example of a GTM strategy deck?" → browse
/deliverablesby type, checkderived-fromlineage
Extension hints
- IP productization. As frameworks mature, they often spawn
/playbooks/— step-by-step application guides. Keep frameworks as the conceptual source; playbooks operationalize them. - Pipeline tracking. If the firm starts tracking pipeline, add
/prospects/before/clients/so the progression prospect → client is traceable. Usually only worth it at 5+ active sales motions. - Outcome logging. Add an
/outcomes/collection when the firm wants to quantify impact per engagement. Outcomes link back to/engagements/viameasured-from. - Evolving toward sales-memory. Firms that sell into the same accounts repeatedly often find sales-memory patterns useful alongside — especially
/commitments/to track what was promised in SOWs.
Example traversal
Question: "How did we approach Globex's positioning work, and what framework did we use?"
context("/")— see collectionscontext("/clients/globex")— read client context, seefor-clientbacklinks from multiple engagements- Follow
for-clientbacklink to/engagements/globex-positioning-2024 context("/engagements/globex-positioning-2024")— read engagement summary, seeled-byedge to/people/maria,applied-frameworkedge to/frameworks/positioning-method,staffed-byedges to other consultantscontext("/frameworks/positioning-method")— read the reusable methodology, seeapplied-frameworkbacklinks from other engagements for comparison
Four hops from root to methodology + its application + the team who applied it.
design.md starters
/clients/design.md— each client is a Thing. Frontmatter:name,description,industry,status(active/paused/former),led-bylink to lead consultant. Anti-pattern: engagement-specific details (timelines, fees) — those live on the engagement./engagements/design.md— each engagement is a Thing. Frontmatter:name,description,status,start-date,end-date(if applicable),for-clientlink,led-bylink. Anti-pattern: bundling multiple concurrent workstreams into one node — split them./people/design.md— includes both consultants and client-side contacts; useworks-atto distinguish. Frontmatter:name,description,role./deliverables/design.md— one deliverable per node. Frontmatter:name,description,date,for-client,produced-in(engagement), optionalderived-from. Anti-pattern: treating every PowerPoint as a deliverable — only the ones worth referencing later./frameworks/design.md— each framework is a Thing. Frontmatter:name,description,status(draft/active/retired). Body: the methodology itself. Link toapplied-frameworkbacklinks implicitly via the edge. Anti-pattern: half-finished frameworks — mark as draft./decisions/design.md— standard decision log. Frontmatter:name,description,date,status. Body: context, decision, consequences. Supersede rather than edit.