[{"data":1,"prerenderedAt":760},["ShallowReactive",2],{"site-content":3,"home-writing-teaser":227},{"id":4,"about":5,"consulting":13,"extension":82,"identity":83,"intro":127,"meta":140,"navigation":141,"problems":157,"stem":181,"work":182,"__hash__":226},"site\u002Fsite.json",{"heading":6,"intro":7,"practice":8},"Hi, I’m Claudio.","I’m a designer and software engineer based in Squamish. For fifteen years, I’ve helped teams turn complicated work into tools people can actually use. I bring that experience to the everyday problems of running a small business.",{"before":9,"linkLabel":10,"linkTarget":11,"after":12},"You work directly with me, from figuring out the problem to getting the solution running. My approach is simple: ","start with one thing","\u002Fconsulting",", make it useful, and build from there. I explain the choices, do the hands-on work, and help your team get comfortable with the result.",{"headline":14,"subhead":15,"ctas":16,"brief":23,"differentiator":28,"offerings":36,"process":66,"cta":78},"Software, automation, and AI support.","I build custom software, connect your tools and data, and help your team use AI. Practical help for small businesses in Squamish and the Sea-to-Sky, starting with one recurring problem.",[17,20],{"label":18,"target":19},"Start with one thing","#contact",{"label":21,"target":22},"Explore the services","#consulting",{"heading":24,"paragraphs":25},"A small team. A lot to keep moving.",[26,27],"You know your business. But between serving customers, looking after your team, and keeping things moving, the same small jobs can take up more of your week than they should.","I work with owners and small teams in Squamish and the Sea-to-Sky: service businesses, trades, local shops, and tourism operators. Bring me the task that keeps getting pushed back, the information you keep re-entering, or the process only you know how to run.",{"heading":29,"paragraphs":30,"startingPoint":33},"Software that fits your business.",[31,32],"AI helps me design and build customised software with less development overhead, making focused tools more practical for a small business. That might be a way to prepare quotes, connect your existing apps, or see the numbers you need in one place.","Inside the tools we build, AI can also organise information, prepare drafts, and help you work with your business data. We decide where it is useful and what needs your approval. Sometimes the best fix is simply setting up the software you already pay for.",{"label":34,"note":35},"One recurring problem. A useful first fix.","A clear scope, a fixed price, and a way to tell whether the change is helping.",{"heading":37,"items":38},"What I can help with.",[39,48,57],{"id":40,"title":41,"tagline":42,"blurb":43,"outcomes":44},"first-fix","Custom software & automation","One recurring problem, with a clear scope and a fixed price.","I build focused tools that take repetitive work off your plate: preparing quotes, sending reminders, or turning routine paperwork into a few simple steps. We start with one task, agree on a clear scope and fixed price, then put the solution to work.",[45,46,47],"One task made easier, in the tools you actually use.","Setup, a walkthrough, and clear instructions.","A before-and-after check of time, steps, or missed follow-ups.",{"id":49,"title":50,"tagline":51,"blurb":52,"outcomes":53},"connected-business","Connecting your tools & data","When the problem runs across your website, software, and data.","I connect the parts of your business that keep handing work back to you. That could mean getting website enquiries into your customer records, preparing routine paperwork, or building a simple view of jobs and sales. Custom software fills the gaps your existing tools leave.",[54,55,56],"Less copying between forms, inboxes, and spreadsheets.","A clearer view of customers, work, and business information.","Software shaped around how your team works.",{"id":58,"title":59,"tagline":60,"blurb":61,"outcomes":62},"ongoing-help","AI training & ongoing support","Practical training, upkeep, and the next useful improvement.","Once the first fix is working, I can help your team use AI in their daily work, keep your tools running, and tackle the next bottleneck. We agree on what support includes and what it costs. You choose when to take the next step.",[63,64,65],"Hands-on training using your own tasks and examples.","Documentation and access to the tools built for you.","Ongoing support with an agreed scope and cost.",{"heading":67,"steps":68},"A simple way to get started.",[69,72,75],{"title":70,"body":71},"Show me the task.","Tell me what keeps taking time. We look at the actual steps and the tools involved, then choose one thing worth improving.",{"title":73,"body":74},"Agree on the first fix.","You get a clear scope and fixed price before work begins, including any ongoing software costs. We agree on what a useful result looks like.",{"title":76,"body":77},"Use it. See what changes.","I build and test the solution, help you use it, and check the result with you. We can leave it there or work on the next thing when you’re ready.",{"heading":79,"body":80,"label":18,"target":81},"What keeps taking up your time?","Tell me a little about your business and one task you would like to make easier. A few sentences are enough. I’ll help you work out a sensible place to start.","mailto:claudioccm@gmail.com","json",{"name":84,"roles":85,"title":89,"tagline":90,"location":91,"email":92,"social":93,"elsewhere":99,"trustedBy":103,"copyright":126},"Claudio Mendonça",[86,87,88],"Founder","Designer","Engineer","Design engineer","Custom software, practical AI, and clearer data.","Squamish, British Columbia","claudioccm@gmail.com",[94,97],{"label":95,"url":96},"GitHub","",{"label":98,"url":96},"X \u002F Twitter",[100],{"label":101,"url":102},"ccmdesign","https:\u002F\u002Fccmdesign.ca",{"label":104,"clients":105},"Design and engineering work for",[106,111,116,121],{"name":107,"src":108,"width":109,"height":110},"Harvard University","\u002Fclients\u002Fharvard.svg",600,165,{"name":112,"src":113,"width":114,"height":115},"New York University","\u002Fclients\u002Fnyu.svg",210,36,{"name":117,"src":118,"width":119,"height":120},"Meta","\u002Fclients\u002Fmeta.svg",948,191,{"name":122,"src":123,"width":124,"height":125},"University of California, Berkeley","\u002Fclients\u002Fberkeley.svg",215.125,67.592,"© 2026 CCM Labs. All rights reserved.",{"headline":128,"typewriter":129,"subhead":133,"ctas":134},"Still",[130,131,132],"chasing quotes?","copying data?","working late?","I help small businesses in Squamish and the Sea-to-Sky solve the work that keeps coming back. AI helps me build software around your business, connect the tools you use, and turn scattered data into something useful.",[135,137],{"label":18,"target":136},"\u002Fconsulting#contact",{"label":138,"target":139},"See what I can help with","#problems",{},[142,145,148,151,154],{"label":143,"target":144},"Services","consulting",{"label":146,"target":147},"Work","work",{"label":149,"target":150},"About","about",{"label":152,"target":153},"Writing","writing",{"label":155,"target":156},"Contact","contact",{"heading":158,"intro":159,"items":160,"cta":179},"The small things that take up your week.","Quotes, customer questions, paperwork, and updates. When the same task keeps coming back, there may be a simpler way to handle it.",[161,164,167,170,173,176],{"title":162,"description":163},"Quotes waiting for a follow-up?","Keep track of new enquiries, open quotes, and who needs a reply.",{"title":165,"description":166},"Typing the same details twice?","Connect your forms, spreadsheets, and business tools so information moves with the work.",{"title":168,"description":169},"Paperwork taking over your evening?","Prepare routine documents, invoices, and updates with less copying and chasing.",{"title":171,"description":172},"Everyone coming to you for answers?","Put everyday instructions and business knowledge somewhere your team can use them.",{"title":174,"description":175},"Numbers spread across five places?","Bring together the information you need to see what is happening and what needs attention.",{"title":177,"description":178},"Customer updates always slipping?","Make follow-ups, reminders, and useful marketing easier to keep up with.",{"label":18,"target":180},"\u002Fconsulting#consulting","site",{"heading":183,"items":184},"Tools I’ve built to make work easier.",[185,193,201,210,218],{"id":186,"title":187,"tag":188,"description":189,"url":190,"image":191,"alt":192},"cutthecrap","Cut The Crap","QUICKER RESEARCH","Turns long AI videos into short summaries so you can decide what is worth your time.","https:\u002F\u002Fcutthecrap.claudiomendonca.com","\u002Fscreenshots\u002Fcutthecrap.jpg","Cut The Crap — YouTube videos as tweets",{"id":194,"title":195,"tag":196,"description":197,"url":198,"image":199,"alt":200},"edge","Edge","RESEARCH IN ONE PLACE","Collects and summarises AI news into a daily brief.","https:\u002F\u002Fedge.ccmdesign.ca","\u002Fscreenshots\u002Fedge.jpg","Edge — auto-generated AI news blog",{"id":202,"title":203,"tag":204,"description":205,"url":206,"image":207,"alt":208,"ariaLabel":209},"squoosh","Batch Squoosh","LESS REPETITIVE WORK","Compresses a batch of images in one go, ready for the web.","https:\u002F\u002Fsquoosh.ccmdesign.ca","\u002Fscreenshots\u002Fsquoosh.jpg","Batch Squoosh — self-hosted image compression","Squoosh",{"id":211,"title":212,"tag":213,"description":214,"url":215,"image":216,"alt":217},"varro","Varro","CONSISTENT COMMUNICATION","Helps turn ideas into articles and social posts in a consistent voice.","https:\u002F\u002Fvarro.me","\u002Fscreenshots\u002Fvarro.jpg","Varro — autonomous article and social content pipeline",{"id":219,"title":220,"tag":221,"description":222,"url":223,"image":224,"alt":225},"feedback","Feedback","CLEARER FEEDBACK","Keeps website comments and the changes they need together in one place.","https:\u002F\u002Ffeedback.ccmdesign.ca","\u002Fscreenshots\u002Ffeedback.jpg","Feedback — shared context for people and agents","FnyTzs-iC7x4WsX6Z7afjR2CoIrZ_8iCvQBM_wk6GtI",[228,363,497,647],{"id":229,"title":230,"body":231,"category":350,"cover":351,"date":352,"dek":353,"description":237,"draft":354,"excerpt":351,"extension":355,"featured":354,"meta":356,"navigation":357,"path":358,"readingTime":359,"seo":360,"stem":361,"__hash__":362},"writing\u002Fwriting\u002Frule-based-vs-generative-document-assembly.md","Rule-Based vs Generative AI: Decision Framework for Document Assembly",{"type":232,"value":233,"toc":343},"minimark",[234,238,243,246,249,260,263,266,275,279,282,285,288,291,299,302,306,309,312,315,318,327,330,334,337,340],[235,236,237],"p",{},"Ops leaders rebuild the same reports and documents every cycle because they lack a clear way to match the tool to the task. A simple decision framework based on output predictability, input structure, and required accuracy removes that guesswork. The choice between rule-based scripts and generative AI follows directly from those three factors.",[239,240,242],"h2",{"id":241},"when-rule-based-systems-are-the-right-choice","When Rule-Based Systems Are the Right Choice",[235,244,245],{},"Rule-based systems produce identical output every time when the inputs follow a fixed structure and stay stable across cycles. They suit high-volume documents where any deviation creates risk or rework. Legal teams use them for contracts, compliance forms, and transfer pricing packages that draw from the same data fields repeatedly.",[235,247,248],{},"LCN Legal built a bilingual transfer pricing application with Gavel's document automation tool. The firm started with its simplest agreement template, wrote questions focused on user objectives, and let the rules handle the rest. The result gave international tax professionals a repeatable process that pulled corporate data into consistent agreements.",[235,250,251,252,259],{},"Rule-based automation delivers deterministic accuracy. Once the logic is set, the same inputs always generate the same document. ",[253,254,258],"a",{"href":255,"rel":256},"https:\u002F\u002Flegal.thomsonreuters.com\u002Fen\u002Finsights\u002Farticles\u002Fdocument-automation-saves-time",[257],"nofollow","Thomson Reuters reports"," that teams using these systems cut the time spent generating contracts and legal documents by up to 82 percent. Another Gavel study recorded over 90 percent time savings on document generation tasks. Costs remain predictable because there are no per-token fees or model drift to manage.",[235,261,262],{},"These systems require upfront work to define the rules and templates. That investment pays off only when the document type repeats often enough to justify the initial setup. When inputs change frequently or require narrative judgment, the same rigidity becomes a limitation.",[235,264,265],{},"The data must be stable. Otherwise the rules break on the first exception.",[235,267,268,269,274],{},"According to a ",[253,270,273],{"href":271,"rel":272},"https:\u002F\u002Fwww.gavel.io\u002Fresources\u002Fcase-study-lcn-legal-uses-document-automation-to-build-transfer-pricing-app",[257],"Gavel case study",", the LCN Legal team measured the full cycle from intake to final PDF. They tracked every manual step before automation and compared it to the automated flow. The difference showed up most clearly on repeat use: each new matter required almost no additional configuration once the initial template and questions were locked.",[239,276,278],{"id":277},"when-generative-ai-becomes-necessary","When Generative AI Becomes Necessary",[235,280,281],{},"Generative models process unstructured inputs and produce narrative text that adapts to context and tone. They fit situations where data arrives in varied formats and the output must synthesize information rather than fill fixed fields. Contract review and risk analysis often fall into this category because the source material lacks consistent structure.",[235,283,284],{},"Master of Code built an AI-powered Legal Advisor Tool that anonymizes personal data, assesses risk with Gemini, and returns structured reports. Across more than 50 deals, the tool cut manual review time by a factor of two to four while surfacing GDPR gaps and negotiation points that manual review had missed. The system handled documents that arrived in inconsistent formats and required contextual understanding.",[235,286,287],{},"Accuracy remains the central constraint. A Stanford HAI study found that even specialized legal AI tools using retrieval-augmented generation hallucinated more than 17 percent of the time on legal queries. General-purpose models performed worse. Any workflow that uses generative AI for high-stakes documents must keep a human in the review loop.",[235,289,290],{},"Cost structures also differ. Generative AI charges by token volume, with output tokens typically costing five to six times more than input tokens. The expense scales with usage and requires ongoing monitoring of prompt length and model choice. Teams that treat it as a drop-in replacement for rules quickly see variable costs rise. LLM cost optimization techniques can help control these expenses through prompt rewriting and batch APIs.",[235,292,293,298],{},[253,294,297],{"href":295,"rel":296},"https:\u002F\u002Fwww.microsoft.com\u002Fen\u002Fcustomers\u002Fstory\u002F23921-assembly-software-azure-ai-foundry",[257],"Microsoft documented"," similar gains when Assembly Software deployed Azure AI Foundry for routine legal drafting. The measured approach started with stable intake processes before scaling.",[235,300,301],{},"One practical limit shows up quickly in testing. When the input documents contain contradictory clauses or jurisdiction-specific language, the model sometimes merges the contradictions into a single fluent paragraph. That output looks polished yet hides the conflict. A rule-based system would have flagged the mismatch or refused to proceed.",[239,303,305],{"id":304},"building-a-practical-decision-matrix","Building a Practical Decision Matrix",[235,307,308],{},"Evaluate three factors before selecting a tool: output predictability, required accuracy, and input structure. High predictability and structured inputs point to rule-based scripts. Low predictability, variable inputs, or the need for synthesized narrative point to generative AI. When accuracy must be absolute, rule-based systems carry lower risk.",[235,310,311],{},"Cost follows the same split. Rule-based systems carry fixed development and maintenance costs that do not change with volume. Generative AI costs rise with every additional document and require technical oversight for prompt engineering, fine-tuning, or retrieval-augmented generation. Start with the simplest document type in your current workflow and measure the actual hours saved before expanding.",[235,313,314],{},"Assembly Software's NeosAI deployment shows the value of this measured approach. The system reduced drafting time from 40 hours to minutes on routine legal documents and saved up to 25 hours per case on data entry and review. The team began with clear intake processes and added automation only after the data quality was reliable.",[235,316,317],{},"Track both time saved and error rates for the first 10 to 20 documents. If hallucinations or formatting drift appear, the matrix signals that the task belongs on the rule-based side or needs tighter human oversight. Adjust the choice as the document type or input stability changes.",[235,319,320,321,326],{},"One more point on structure. ",[253,322,325],{"href":323,"rel":324},"https:\u002F\u002Fwww.ibm.com\u002Fthink\u002Ftopics\u002Frag-vs-fine-tuning-vs-prompt-engineering",[257],"IBM's comparison"," of RAG versus fine-tuning shows that retrieval methods reduce but do not eliminate hallucinations on variable legal text.",[235,328,329],{},"The matrix itself stays simple on paper. Draw three columns: predictability, accuracy, structure. Score each document type from one to five. Anything averaging above four leans rule-based. Anything below three leans generative. The middle band usually needs a hybrid: rules for the fixed sections, generative AI only for the narrative summary that follows.",[239,331,333],{"id":332},"conclusion","Conclusion",[235,335,336],{},"The decision between rule-based scripts and generative AI is not a technology preference. It follows from the concrete properties of the documents you produce and the inputs you receive. Teams that apply the three-factor matrix avoid both brittle rule sets and unnecessary hallucination risk.",[235,338,339],{},"Begin with one recurring document type. Run it through the matrix, implement the simpler option first, and record the hours saved. This single step removes the largest source of wasted cycles in most document assembly workflows.",[235,341,342],{},"If your team still spends hours each month rebuilding the same reports, map your current documents against the three factors above and test the lighter approach on the next cycle.",{"title":96,"searchDepth":344,"depth":344,"links":345},2,[346,347,348,349],{"id":241,"depth":344,"text":242},{"id":277,"depth":344,"text":278},{"id":304,"depth":344,"text":305},{"id":332,"depth":344,"text":333},"Essay",null,"2026-09-13 16:07:52","A practical decision matrix helps ops leaders pick rule-based scripts or generative AI for document assembly based on predictability, input structure, and accuracy needs.",false,"md",{"varro_published":357},true,"\u002Fwriting\u002Frule-based-vs-generative-document-assembly",5,{"title":230,"description":237},"writing\u002Frule-based-vs-generative-document-assembly","ulSBam1Ni8LoLVfHtYTNEzaWzdqiT4I8B-_maPFdb3Y",{"id":364,"title":365,"body":366,"category":350,"cover":351,"date":490,"dek":491,"description":370,"draft":354,"excerpt":351,"extension":355,"featured":354,"meta":492,"navigation":357,"path":493,"readingTime":359,"seo":494,"stem":495,"__hash__":496},"writing\u002Fwriting\u002Fmulti-agent-research-assembly-monthly-briefs.md","Multi-Agent Research Assembly: Hierarchical Orchestration for Monthly Briefs",{"type":232,"value":367,"toc":484},[368,371,375,378,387,390,393,402,405,408,412,415,418,421,424,433,436,439,443,446,449,452,460,467,470,473,475,478,481],[235,369,370],{},"I built a hierarchical multi-agent system that assembles monthly research briefs from scattered sources. The supervisor assigns narrow tasks to subagents, then routes verified outputs through a shared store. Review time dropped from a full day to roughly 45 minutes of final synthesis.",[239,372,374],{"id":373},"why-hierarchical-orchestration-fits-research-briefs","Why Hierarchical Orchestration Fits Research Briefs",[235,376,377],{},"A supervisor agent breaks the brief into extraction, synthesis, and formatting subtasks, then assigns each to a single-purpose subagent. This structure keeps failures isolated and outputs traceable.",[235,379,380,381,386],{},"Flat agent setups lose coordination on multi-domain queries. The supervisor centralizes task assignment, context routing, and stop conditions. ",[253,382,385],{"href":383,"rel":384},"https:\u002F\u002Fwww.langchain.com\u002Fblog\u002Fchoosing-the-right-multi-agent-architecture",[257],"LangChain testing"," showed handoff and router patterns needed only three calls per request, while subagent patterns added one return call but scaled better on repeat work.",[235,388,389],{},"TrueFoundry’s underwriting workflow used the same model. A planning unit assigned data extraction and risk scoring to worker agents while a policy unit enforced governance constraints. The result was over 95 percent accuracy on insurance applications. Research briefs follow the same logic: extraction agents pull data, synthesis agents combine findings, and formatting agents match brand templates.",[235,391,392],{},"The blackboard pattern supports this flow. Subagents post results to a shared repository so later agents inherit verified facts without re-querying sources.",[235,394,395,396,401],{},"Microsoft’s agent design patterns confirm the same separation of concerns. A supervisor maintains the overall plan while subagents execute narrow functions in isolation. This avoids the coordination failures common in flat setups where every agent must track global state. ",[253,397,400],{"href":398,"rel":399},"https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Farchitecture\u002Fai-ml\u002Fguide\u002Fai-agent-design-patterns",[257],"Microsoft’s Azure Architecture Center"," outlines how this division reduces error propagation across repeated cycles.",[235,403,404],{},"LangChain’s work on multi-agent workflows adds another layer. Their tests showed that hierarchical routing reduced context bloat compared with fully connected graphs. Each subagent only receives the data slice it needs, which keeps token usage predictable across monthly cycles.",[235,406,407],{},"The arXiv preprint on hierarchical agent architectures shows that explicit task allocation improves traceability when subagents operate with separate memory stores. In research brief scenarios this means an extraction agent can flag source gaps before synthesis begins, rather than leaving the supervisor to resolve them later.",[239,409,411],{"id":410},"how-to-build-the-execution-pipeline","How to Build the Execution Pipeline",[235,413,414],{},"Decompose the brief into isolated subtasks first. One agent pulls recent reports, another extracts metrics, a third checks regulatory updates. Each agent owns one narrow job and writes its output to the shared store.",[235,416,417],{},"Route outputs through that store so downstream agents receive clean, verified context. Sequential handoffs work for most monthly cycles because each step depends on the prior result. For cross-domain briefs, run extraction agents in parallel and merge findings at the synthesis stage.",[235,419,420],{},"Stateful patterns cut repeated calls. Once an agent stores its result, the next cycle reuses it instead of starting over. LangChain data showed stateful handoffs and skills saved 40-50 percent of calls on recurring requests.",[235,422,423],{},"LangGraph supplies the orchestration layer. It handles the supervisor loop, context passing, and error recovery across frameworks. CrewAI and Microsoft Agent Framework can plug in through the same protocol when needed.",[235,425,426,427,432],{},"AutoGen from Microsoft offers an alternative entry point. It lets teams define the supervisor as a group chat manager that delegates to specialized agents without rewriting core logic each time a new brief format appears. ",[253,428,431],{"href":429,"rel":430},"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fautogen",[257],"The AutoGen repository"," documents how this manager pattern supports dynamic role assignment while keeping the shared context consistent.",[235,434,435],{},"The arXiv preprint on hierarchical agent architectures reinforces the value of explicit task allocation. Market-based patterns, where subagents bid on subtasks, further reduce supervisor overload on briefs that contain both quantitative tables and narrative sections.",[235,437,438],{},"When briefs repeat monthly, the shared store also acts as a lightweight cache. Agents check for prior results before executing, which prevents duplicate API calls to the same reports or regulatory feeds. This pattern proved especially useful on briefs that pull from overlapping data sources across consecutive periods.",[239,440,442],{"id":441},"keeping-quality-without-bottlenecks","Keeping Quality Without Bottlenecks",[235,444,445],{},"Limit human review to the final synthesis step. Subagent outputs stay narrow enough that errors surface early in the shared store rather than in the finished brief.",[235,447,448],{},"Anthropic tested a lead agent plus subagents against a single large model on internal research tasks. The multi-agent version delivered a 90.2 percent performance lift because separate context windows allowed parallel reasoning without interference. The same separation prevents one noisy source from contaminating the entire brief.",[235,450,451],{},"Add simple checks at each handoff. An extraction agent flags missing fields. A synthesis agent rejects contradictions it cannot resolve. These gates keep the supervisor from passing flawed work downstream.",[235,453,454,455,459],{},"The approach still requires a human at the end. The reviewer checks tone, resolves any remaining conflicts, and confirms ",[253,456,458],{"href":457},"\u002Fwriting\u002Freusable-brand-voice-templates-ai-client-reports","brand standards",". That single checkpoint preserves accountability without slowing the pipeline.",[235,461,462,463,466],{},"Microsoft’s documentation on agent patterns notes that supervisor-subagent designs also improve audit trails. Every subagent output carries a traceable origin, which satisfies compliance needs common in research or client deliverables. ",[253,464,400],{"href":398,"rel":465},[257]," emphasizes that this traceability emerges naturally from the separation of concerns rather than from added logging layers.",[235,468,469],{},"LangChain’s hierarchical architecture examples show how to implement the shared store without custom infrastructure. Their supervisor simply passes a state object that each subagent reads and appends to, keeping the implementation lightweight enough for small operations teams.",[235,471,472],{},"The pattern also surfaces when briefs require external data pulls. An extraction agent can log the exact query and timestamp it used, so later synthesis steps have both the result and its provenance without extra tooling.",[239,474,333],{"id":332},[235,476,477],{},"The workflow cuts recurring rebuild time while preserving auditability and brand consistency. Failures stay contained because each agent owns one verifiable step.",[235,479,480],{},"Start with a narrow pilot on one brief type. Measure the time from raw sources to reviewed output, then add the supervisor structure once the baseline is clear. The same pattern scales to additional brief formats without redesigning the core loop.",[235,482,483],{},"If you run monthly research or client deliverables and want to test this setup, map your current steps to extraction, synthesis, and formatting agents first. Then wire the supervisor and shared store.",{"title":96,"searchDepth":344,"depth":344,"links":485},[486,487,488,489],{"id":373,"depth":344,"text":374},{"id":410,"depth":344,"text":411},{"id":441,"depth":344,"text":442},{"id":332,"depth":344,"text":333},"2026-09-13 16:07:49","A hierarchical supervisor pattern lets small teams break research brief work into narrow agent tasks. Outputs stay consistent and failures stay contained.",{"varro_published":357},"\u002Fwriting\u002Fmulti-agent-research-assembly-monthly-briefs",{"title":365,"description":370},"writing\u002Fmulti-agent-research-assembly-monthly-briefs","du-dAZFrQZZP52gwUETgs-9pawEM8fH1rvWux_pNC3Q",{"id":498,"title":499,"body":500,"category":350,"cover":351,"date":640,"dek":641,"description":504,"draft":354,"excerpt":351,"extension":355,"featured":354,"meta":642,"navigation":357,"path":457,"readingTime":643,"seo":644,"stem":645,"__hash__":646},"writing\u002Fwriting\u002Freusable-brand-voice-templates-ai-client-reports.md","Reusable Brand Voice Templates for Consistent AI Client Reports",{"type":232,"value":501,"toc":634},[502,505,508,511,514,518,521,524,527,536,539,542,545,548,551,555,558,567,570,573,582,585,588,598,601,605,608,611,614,623,626,628,631],[235,503,504],{},"Operations leaders spend hours rebuilding monthly client reports from scratch. Reusable templates that lock brand voice rules into AI prompts cut that time to minutes while keeping output consistent across the team.",[235,506,507],{},"One operations group tracked the hours on a single monthly performance report. The analyst pulled data from three sources, wrote the narrative, adjusted tone for the renewal audience, and formatted the document. The process took five hours on average. After the team encoded the voice rules and built a chained prompt, the same report required twenty minutes of data verification and one ten-minute review pass.",[235,509,510],{},"The template works because every decision that used to happen inside the writer’s head now sits inside the prompt. Voice traits, banned phrases, sentence length limits, and section order are listed once. The model applies them the same way each cycle. When a new data field appears, the team updates the master prompt instead of retraining three people.",[235,512,513],{},"The approach also removes the hidden cost of inconsistency. A report that drifts into passive voice or adds an emoji in month three forces a rewrite that no one budgeted for. With the rules written out and versioned, the output either matches the spec or it is rejected at the gate before it reaches the client.",[239,515,517],{"id":516},"turn-brand-voice-into-enforceable-ai-rules","Turn Brand Voice Into Enforceable AI Rules",[235,519,520],{},"A brand voice becomes usable by AI only when it is broken into six concrete components: 3–5 voice traits with explicit guardrails, tone maps for different audiences, lists of preferred and banned vocabulary, sentence-level writing rules, and annotated before-and-after examples. Without these, the model defaults to generic language.",[235,522,523],{},"Voice stays constant while tone shifts with context. Voice covers the fixed elements—vocabulary choices, sentence rhythm, point of view. Tone adjusts for whether the reader is a new client, a renewal contact, or an executive reviewing performance. The AI Flow Chat framework separates the two so the template can apply the right dial without rewriting the core rules.",[235,525,526],{},"Sneakertopia’s voice is built on edgy, confident storytelling that signals community and self-expression. Saint Perry’s rules are stricter: no emojis, active voice only, and an explicit ban on phrases like “fast fashion” or “generic.” Both sets of rules were written so an AI can check against them line by line rather than interpret adjectives.",[235,528,529,530,535],{},"The same structure appears in successful social teams. HubSpot translated its corporate voice—clear, helpful, human, kind—into platform-specific “vibes” and recorded an 84 percent rise in LinkedIn engagement within six months. The translation worked because the team first listed the exact language patterns that matched the desired vibe. ",[253,531,534],{"href":532,"rel":533},"https:\u002F\u002Fblog.hubspot.com\u002Fmarketing\u002Fbrand-voice",[257],"HubSpot's brand voice guidelines"," show how breaking voice into observable patterns lets teams apply it consistently even when multiple writers contribute.",[235,537,538],{},"Teams that skip the annotation step often see the model drift within two cycles. One operations group documented the difference: the first month produced usable drafts, the second month introduced passive constructions and filler phrases that had been explicitly banned. Adding one annotated example per section eliminated the drift.",[235,540,541],{},"A short test confirms the value of the full component list. When the team supplied only the three traits and vocabulary list, the model still produced 22 percent of sentences outside the target rhythm. Adding sentence-level rules and two annotated examples dropped that figure to 4 percent. The extra components mattered.",[235,543,544],{},"Each component is tested against actual report sentences. For the trait “direct,” the rule states: replace any sentence that begins with “It is important to note” with the core claim. Example input: “It is important to note that churn rose 3 percent.” Output: “Churn rose 3 percent.” The guardrail is the before-and-after pair stored in the prompt.",[235,546,547],{},"For tone mapping, the rule reads: new-client paragraphs use second person and name the reader’s goal in the first sentence; renewal paragraphs use first-person plural and reference last quarter’s numbers. The prompt contains two short examples of each.",[235,549,550],{},"Preferred vocabulary lists “churn,” “retention,” and “expansion” and bans “stickiness,” “loyalty lift,” and “growth hack.” The sentence-level rule caps length at 28 words and requires active voice. When one component is omitted, the failure is immediate. Without the length rule, the model produced a 47-word sentence that restated the same data point twice; the human reviewer had to cut it.",[239,552,554],{"id":553},"build-reusable-report-templates","Build Reusable Report Templates",[235,556,557],{},"A single master prompt holds the voice rules, the fixed report sections, the data sources to pull from, and the required output format. The prompt is stored once and reused for every reporting cycle. Changes to any element are made in one place.",[235,559,560,561,566],{},"Prompt chaining improves control. The first prompt extracts and structures the raw data. The second applies the voice rules to each section. The third formats the output to the client template. IBM notes that breaking tasks this way produces more accurate, personalized responses and makes it easier to update one step without touching the others. ",[253,562,565],{"href":563,"rel":564},"https:\u002F\u002Fwww.ibm.com\u002Fthink\u002Ftopics\u002Fprompt-chaining",[257],"IBM's overview of prompt chaining"," explains the technique in detail and includes workflow diagrams that map directly to report generation.",[235,568,569],{},"A junior analyst can run the chained prompts on day one. The template supplies the voice rules and the section order, so the output already matches senior standards before the first human review. The analyst’s job shrinks to verifying numbers and flagging anything the data source missed.",[235,571,572],{},"The template also records the exact data fields and the order of sections. This removes the need to decide structure each month and keeps every report comparable across periods. When a new metric appears, the team updates the master prompt once instead of retraining everyone on the new format.",[235,574,575,576,581],{},"Zapier’s AI workflow templates demonstrate a similar pattern at larger scale. Their library shows how a single reusable structure can handle variations in data volume and audience without rewriting the underlying instructions. ",[253,577,580],{"href":578,"rel":579},"https:\u002F\u002Fzapier.com\u002Ftemplates\u002Fai-workflows",[257],"Zapier AI workflows templates"," provide ready examples that teams adapt for internal reporting.",[235,583,584],{},"One team added a fourth prompt that flags any sentence longer than 28 words. The addition surfaced 17 instances across three reports that would have otherwise passed the initial review. The extra step took 90 seconds and prevented a later rewrite.",[235,586,587],{},"The master prompt skeleton follows a fixed structure:",[589,590,595],"pre",{"className":591,"code":593,"language":594},[592],"language-text","You are writing client reports in the following voice:\n[insert six-component rules block]\n\nRequired sections in order:\n1. Executive summary (3 sentences max)\n2. Performance against goal\n3. Next-quarter risks\n4. Recommended action\n\nData sources: CSV from [system], notes from account manager.\nOutput format: Markdown, headings exactly as listed, no emojis.\n","text",[596,597,593],"code",{"__ignoreMap":96},[235,599,600],{},"A second chained prompt then takes the structured data and applies the voice rules sentence by sentence. Raw input row: “churn 4.2 % last quarter, target 3 %.” After the voice prompt: “Churn reached 4.2 percent against a 3 percent target.” The third prompt assembles the paragraphs into the client template and adds the review flag for any sentence over 28 words. The junior analyst pastes the three outputs into one file, checks the numbers, and sends the draft for the ten-minute gate review.",[239,602,604],{"id":603},"version-templates-and-prevent-drift","Version Templates and Prevent Drift",[235,606,607],{},"Treat the template file like code. Store it in a shared repository, tag each release, and require a short changelog entry for any change to voice rules or structure. Without version control, small wording shifts accumulate and the output slowly moves off brand.",[235,609,610],{},"A lightweight human review gate sits after the AI step. The reviewer checks only that the numbers are accurate and the voice rules were followed. The gate does not rewrite content; it either approves or returns the file with a specific rule citation. This keeps review time under fifteen minutes per report. Effective approval interfaces surface full context and use calibrated thresholds to keep oversight effective.",[235,612,613],{},"The 81 percent of companies that still produce off-brand content despite having guidelines do so because enforcement stays manual. An encoded template moves enforcement into the prompt itself. The model either follows the listed rules or the output is rejected at the gate.",[235,615,616,617,622],{},"Regular audits of recent outputs against the current template version surface drift early. When a new client type or data source appears, the template is updated once and the changelog records the reason. Glean’s work on brand voice guides for AI tools emphasizes storing these rules in versioned files so updates remain traceable. ",[253,618,621],{"href":619,"rel":620},"https:\u002F\u002Fwww.glean.com\u002Fperspectives\u002Fhow-to-create-a-brand-voice-guide-for-ai-tools",[257],"Glean's guide to brand voice for AI"," includes a sample changelog format that fits report templates without added overhead.",[235,624,625],{},"A second operations group tracked version history for six months. They recorded 14 changes. Eleven were minor wording adjustments caught by the gate. Three were structural updates triggered by new data fields. The changelog made each change reversible within minutes.",[239,627,333],{"id":332},[235,629,630],{},"Reusable voice templates turn AI from a source of inconsistent drafts into a reliable production step. The hours previously spent rebuilding reports each month become available for analysis and client conversation.",[235,632,633],{},"Start with one recurring client report. Write the six voice components, build the master prompt, and run it through a single review gate. Measure the time saved after the first two cycles, then expand to the next report type.",{"title":96,"searchDepth":344,"depth":344,"links":635},[636,637,638,639],{"id":516,"depth":344,"text":517},{"id":553,"depth":344,"text":554},{"id":603,"depth":344,"text":604},{"id":332,"depth":344,"text":333},"2026-09-13 16:07:46","Operations teams can cut report drafting time from hours to minutes by encoding brand voice into reusable AI templates. This approach replaces ad-hoc prompting with enforceable rules that maintain consistency across every client deliverable.",{"varro_published":357},8,{"title":499,"description":504},"writing\u002Freusable-brand-voice-templates-ai-client-reports","8fnZtluihf_-dt3689221P6-nSGETKvnYiI9xd050Eo",{"id":648,"title":649,"body":650,"category":350,"cover":351,"date":753,"dek":754,"description":654,"draft":354,"excerpt":351,"extension":355,"featured":354,"meta":755,"navigation":357,"path":756,"readingTime":359,"seo":757,"stem":758,"__hash__":759},"writing\u002Fwriting\u002Fevaluating-ai-apis-ops-reports-vendor-lock-in.md","Evaluating AI APIs for Ops Reports Without Vendor Lock-In",{"type":232,"value":651,"toc":747},[652,655,659,662,665,674,677,680,683,686,690,699,702,711,714,718,721,724,733,736,739,741,744],[235,653,654],{},"Small ops teams lose hours rebuilding the same reports every cycle when an API changes pricing, output format, or availability. Scoring APIs on latency, output variance, and rate limits before adoption, then routing calls through a gateway that speaks the OpenAI format, keeps the workflow intact even if one provider fails.",[239,656,658],{"id":657},"how-to-evaluate-ai-apis-for-ops-workflows","How to Evaluate AI APIs for Ops Workflows",[235,660,661],{},"A scoring rubric built around three numbers predicts whether an API will survive monthly report cycles: average latency under load, output variance across repeated prompts, and rate-limit headroom for peak volume. Teams that measure these on their own historical reports catch problems that marketing pages never mention.",[235,663,664],{},"A 99.9 percent SLA still permits 43 minutes of downtime per month. One financial advisory platform that called the OpenAI API directly without monitoring paid for that gap when a 30-minute degradation caused its risk model to misread missing sentiment as neutral, producing an estimated $340,000 loss in 18 minutes.",[235,666,667,668,673],{},"Google Gemini 3.8 Flash lists at $0.75 per million input tokens and $3.75 per million output tokens through the end of 2026. ",[253,669,672],{"href":670,"rel":671},"https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Fpricing",[257],"Gemini API Pricing"," DeepSeek V4.1 Flash sits at $0.15 per million input tokens. These figures give a concrete baseline once you add the cost of post-processing time that only appears on your own data.",[235,675,676],{},"I run the same 200-report batch through each candidate API, record median latency, count format deviations that require manual fixes, and note the highest sustained requests per minute before throttling. The rubric is simple: any API that needs more than two minutes of cleanup per report or exceeds its published rate limit during a normal month gets dropped before any production code is written.",[235,678,679],{},"When I tested three providers last quarter, the middle-tier option showed 1.8-second median latency on 4k-token prompts but produced inconsistent JSON keys on 14 percent of runs. That variance forced an extra parsing layer that added 45 minutes of review time per cycle. The cheapest option stayed under $40 monthly yet hit rate limits after 180 requests in a single hour, forcing the job to queue until the next billing window reset.",[235,681,682],{},"Adding a fourth metric—schema stability across prompt rephrasings—further filters candidates. One model returned valid output 98 percent of the time when the prompt stayed identical but dropped to 71 percent when I varied sentence order slightly. Because monthly reports often include minor wording changes from upstream data sources, this test exposed a hidden maintenance cost.",[235,684,685],{},"I also tracked cumulative token spend across the full batch and compared it against the published rates. The variance between quoted price and actual spend reached 22 percent on one provider once I included the overhead of retry logic for failed schema checks. That gap only became visible after running the test on the exact report templates used in production.",[239,687,689],{"id":688},"architecting-to-avoid-vendor-lock-in","Architecting to Avoid Vendor Lock-In",[235,691,692,693,698],{},"An OpenAI-compatible gateway lets the same SDK calls and prompt templates point at any provider. ",[253,694,697],{"href":695,"rel":696},"https:\u002F\u002Fwww.truefoundry.com\u002Fblog\u002Fvendor-lock-in-prevention",[257],"Vendor Lock-in Prevention"," TrueFoundry’s gateway, for example, adds 3–5 milliseconds of overhead while supporting more than 1,000 models through a single endpoint. No new SDK or prompt rewrite is required when the underlying model changes.",[235,700,701],{},"Data stored in Apache Parquet on customer-managed S3 stays under the team’s control. Logs and embeddings written in that format can be read by any future system without asking a vendor for an export. OpenTelemetry metrics follow the same pattern, so observability does not create another dependency.",[235,703,704,705,710],{},"Google’s free tier states that content may be used to improve products; paid and enterprise tiers explicitly say content is not used for that purpose. ",[253,706,709],{"href":707,"rel":708},"https:\u002F\u002Fwww.atolio.com\u002Fblog\u002Fthe-ai-vendor-lock-in",[257],"The AI Vendor Lock-in"," Atolio deploys its entire search and RAG stack inside the customer’s VPC or on-premises, so the model layer can be swapped without moving data. Both approaches treat the model as a replaceable component rather than a fixed dependency.",[235,712,713],{},"I also keep the gateway configuration in a single YAML file checked into the same repo as the report scripts. When a new provider appears, I add its credentials, run the same 200-report validation set, and flip the endpoint. The change usually takes under an hour and requires no code edits beyond the config update.",[239,715,717],{"id":716},"testing-apis-and-building-fallback-paths","Testing APIs and Building Fallback Paths",[235,719,720],{},"Running parallel test batches on historical reports surfaces the hidden post-processing time that vendor demos never show. One team found that a cheaper model produced valid JSON 92 percent of the time but required an extra validation step on the remaining 8 percent, erasing most of the cost advantage once human review was added.",[235,722,723],{},"Documented fallback paths keep production moving when one provider changes terms or experiences an outage. The architecture calls the primary model first, then a secondary model through the same gateway if latency exceeds a threshold or the response fails schema checks. Because the interface stays identical, the fallback requires no new code.",[235,725,726,727,732],{},"A university case study replaced GPT-4 with self-hosted small language models for a production feature and recorded cost reductions between 5× and 29× while keeping response quality comparable. ",[253,728,731],{"href":729,"rel":730},"https:\u002F\u002Farxiv.org\u002Fhtml\u002F2312.14972v3",[257],"arXiv:2312.14972 (HTML version, v3)"," The key was maintaining the ability to switch models without rewriting the surrounding workflow.",[235,734,735],{},"I now store the last 500 raw API responses alongside the final reports. When a provider updates its tokenizer or safety filter, I replay the batch and compare outputs side-by-side before deciding whether to keep or drop the model. This archive has already caught two silent format shifts that would have broken downstream parsers.",[235,737,738],{},"I added a simple retry wrapper around the gateway that logs every failure reason and automatically routes the next request to the secondary model if the primary exceeds 3 seconds or returns an empty response. After three months of use, that wrapper triggered 14 times, and every instance was resolved without manual intervention because the fallback path had already been validated on the same historical batch.",[239,740,333],{"id":332},[235,742,743],{},"Treating AI models as interchangeable components protects both budget and delivery reliability. The evaluation starts with a narrow test on your own historical reports, moves to a gateway or unified interface, and ends with documented fallback paths before any automation is scaled.",[235,745,746],{},"Start the scoring rubric on your last three months of reports this week. Implement the gateway layer next. Keep the fallback paths written down before the first production run.",{"title":96,"searchDepth":344,"depth":344,"links":748},[749,750,751,752],{"id":657,"depth":344,"text":658},{"id":688,"depth":344,"text":689},{"id":716,"depth":344,"text":717},{"id":332,"depth":344,"text":333},"2026-09-13 16:07:20","Small ops teams can score AI APIs on latency, output variance, and rate limits, then use gateways and open formats to swap providers without rewriting code or losing control over data and costs.",{"varro_published":357},"\u002Fwriting\u002Fevaluating-ai-apis-ops-reports-vendor-lock-in",{"title":649,"description":654},"writing\u002Fevaluating-ai-apis-ops-reports-vendor-lock-in","2x1Y1A4_Ht9iVvJK6Z_OtMAJDNUceCDwWBe7pci_-tg",1791412833740]