skills/sow/SKILL.md
Draft Fitted Automation Scope-of-Work documents (Appendix A under MSA). Use when user asks to draft an SOW, scope of work, appendix, or client agreement scope — or invokes /sow. Synthesizes the client's wiki page + recent Granola meetings + sow-conventions reference + closest matching prior SOW, then produces a Markdown draft in Scopes of Work/ for handoff to Cowork for .docx production.
npx skillsauth add rdfitted/claude-code-setup sowInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Drafts an Appendix A — Scope of Work for a Fitted Automation client. Output is a Markdown file in Agreements\Scopes of Work\. The .docx polish is done separately in Cowork (anthropic-skills:docx); this skill does not produce a .docx.
Claude Code (this skill): structure + synthesis. Pulls client intel, picks the IP model, applies pricing conventions, writes the Markdown draft.
Cowork on claude.ai (anthropic-skills:docx): document polish. User opens the .md and runs the docx skill there to produce the sendable .docx.
Do not try to produce a .docx from Claude Code. Stop at the .md and hand off.
Trigger on any of:
/sow invoked explicitly/timeline skill will codify the client-conversation pattern for hard dates.)Agreements\Signed\ are immutable. Change-requests against a signed SOW become a new Appendix B/C, not an edit.Always read C:\Users\USERNAME\.ai-docs\wiki\practices\sow-conventions.md first, every invocation. It is the source of truth for:
This skill references that file; it does not restate it. If conventions and this skill disagree, conventions wins — and that's a signal to update this skill.
If the user didn't name a client, ask for the slug (e.g. summit-rb, frontrow, nuveldys, ubs, scattered-ashes-maui).
Read C:\Users\USERNAME\.ai-docs\wiki\clients\<slug>.md — pain points, framing, stakeholders, decisions already made. This is the primary intelligence source.
Read C:\Users\USERNAME\.ai-docs\wiki\practices\sow-conventions.md.
Pull recent Granola meetings:
If the slug is in granola's hardcoded CLIENT_FOLDERS (tog, gvb, ubs, scattered-ashes-maui, totum):
python C:\Users\USERNAME\.claude\skills\granola\scripts\granola_api.py list-meetings <slug> --limit 5
python C:\Users\USERNAME\.claude\skills\granola\scripts\granola_api.py transcript <doc-id>
If the slug is NOT in CLIENT_FOLDERS (Summit RB, Front Row Barber, Nuveldy's, etc.) — fall back to a regex search across all docs:
python C:\Users\USERNAME\.claude\skills\sow\scripts\find_client_meetings.py "summit|warshaw" --limit 5
python C:\Users\USERNAME\.claude\skills\sow\scripts\find_client_meetings.py "front row|gerardo|padilla" --limit 5
Then transcript <doc-id> against the granola CLI.
List existing SOWs to see whether this is Appendix A (new MSA) or Appendix B+ (additional project under an existing MSA):
Get-ChildItem "C:\Users\USERNAME\OneDrive\Fitted Automation\Agreements\Scopes of Work\" -Filter "*<Client>*"
Walk through these and show reasoning to the user. Do not auto-decide silently.
| Decision | Default | When to deviate |
|---|---|---|
| Appendix letter | A for new project under MSA | B, C… if client already has one or more executed appendices (see UBS) |
| Phase split | Single-phase | Phase 1 + Phase 2 when a platform-decision-gate is unresolved (sow-conventions §"Scoping Under Vendor-Platform Constraints"), or when contracting before discovery |
| IP Option | A (hosted, 6× buyout) | B if everything ships as portable Claude Skills/components running in Client's own AI workspace. C (hybrid) when some deliverables are hosted and others are skills (see Summit RB, Front Row) |
| Audit-fee waiver | Charge $5K Phase 1 fee | Waive when Client runs the operation on a single end-to-end vendor system (≤2 vendors total). Always waive for Front Row / Squire-only-style shops |
| Stylistic template | Scatter Ashes (formal new-client) | UBS Sales Portal for existing-client add-ons; Summit Restoration for partnership-tone multi-deliverable hybrid; Front Row Barber for phased-with-decision-gate |
Show the chosen IP option's reasoning: list each major deliverable and which option (A / B / hybrid) it maps to. The "why this split" rationale is in sow-conventions §"Standard Appendix A Structure" item 5 — buyout-as-enforcement only has teeth on hosted infrastructure; for skills running in Client's workspace there's nothing to withhold, so buyout language reads hollow.
From sow-conventions.md §"Pricing Patterns":
$5,000/mo standard new-client anchor. Do not propose lower without explicit direction.
6× monthly retainer = buyout fee.
$5,000 Phase 1 discovery fixed fee, creditable against Phase 2 month 1 if Phase 2 is signed within 30 days.
Single-system audit-fee waiver when Client runs on one end-to-end vendor.
Round-number-with-discount pattern (new convention — encode this): when scaling below ICP, anchor on a round number ($5K / $10K / $15K) and show the discount visibly using strikethrough. Example:
Monthly Retainer: ~~$5,000~~ → $3,500/mo (partner rate, scaled to Client revenue)
Preserves the value signal and frames the giveback as a deliberate concession rather than a discounted starting line.
Timelines — in vs. out. Engagement-level phase windows (e.g. "6-week Discovery; initial build weeks 7-23; full delivery ~week 60") ARE in — they signal scope size and anchor renewal. Hard calendar dates, per-deliverable "X done by Y" promises, and week-by-week milestone schedules per scope item are OUT — those belong in live client conversation (future /timeline skill). The 5-stage waterfall (next step) is a process commitment, not a timeline, and always appears.
Path:
C:\Users\USERNAME\OneDrive\Fitted Automation\Agreements\Scopes of Work\YYYYMMDD Appendix <Letter> - <Client> SOW.md
YYYYMMDD is today (use the date from the currentDate block in the session context). Example: 20260517 Appendix A - Front Row Barber SOW.md.
Structure (per sow-conventions §"Standard Appendix A Structure"):
Header block — Client, Effective Date (blank), Monthly Retainer, any setup/audit fee, Initial Build Timeline, Agreement Type
MSA reference line — "This Appendix is governed by and forms part of the Master Services Agreement between the parties. Terms of the MSA control on any inconsistency except where this Appendix explicitly varies them." The Appendix MUST reference, not restate, the MSA. IP, confidentiality, indemnification etc. already live in MSA §7–§13.
Engagement Approach — short narrative + operating principles. Include the neutrality clause (Model/Provider/Delivery-Form — final form confirmed at Phase 1 close).
Numbered scope items (1..N) — each with **Description:** and **Acceptance Criteria:** bullets. Acceptance criteria must be testable, not vibes.
Specifications & Deliverables — how specs and updates are tracked (shared ledger, recurring touch-base cadence). REQUIRED CLAUSE — Per-Project Delivery Waterfall. Insert the following verbatim (do not paraphrase):
- **Per-Project Delivery Waterfall.** Each numbered scope item moves through a five-stage waterfall: (1) **Requirements** — capture and confirm acceptance criteria; (2) **Development** — implementation against requirements; (3) **Internal Testing** — Developer-side validation; (4) **User Acceptance Testing (UAT)** — Client-side validation against acceptance criteria; (5) **Training** — Client and end-user enablement on the delivered system. Stages within a single project run sequentially. **Sequencing rule:** the next project's Requirements and early Development phases run in parallel with the current project's UAT and Training, preserving momentum and avoiding Developer idle time between deliverables. This overlap pattern is the default sequencing rule for the engagement.
Compensation Terms — retainer, build-period inclusion, billing cycle, scope-expansion clause. No timelines tied to hours.
Intellectual Property — Option A / B / Hybrid per Step 2. For Option C, label the sub-sections "Skills / Component Deliverables" and "Hosted / Managed Components" (see Front Row template).
Third-Party Costs (Client Responsibility) — accurate to the tech stack chosen.
Warranty Period — typically "no formal warranty per MSA §5; 30-day post-launch support for bug fixes + clarifications."
Signature block — Client + Service Provider, blank dates.
Reference templates (pick the closest one as the structural starting point, do not copy verbatim):
Appendix A - Scatter Ashes Maui SOW.md — formal new-client default, Option A IPAppendix B - UBS Sales Portal SOW.md — pitch-forward existing-client add-on, hours-capped retainer20260512 Appendix A - Summit Restoration SOW.md — partnership-tone, multi-deliverable, hybrid IP (Option C), 60hr retainer20260517 Appendix A - Front Row Barber SOW.md — Phase 1 + Phase 2 with platform-decision gate, audit-fee waiver, hybrid IP, "Tentative Draft" headerStop at the .md. Tell the user:
Draft saved to
<absolute path>. To produce the final.docxfor sending, open the file in Cowork (claude.ai) and run theanthropic-skills:docxskill — that side has the docx production tooling. This side does not.
Optionally remind them to run the pre-send checklist from sow-conventions §"Checklist Before Sending an Appendix" before passing to Cowork.
Is there an executed MSA + at least one prior Appendix for this client?
├── No → Appendix A. Use Scatter Ashes / Front Row template.
└── Yes → Appendix B/C/... Use UBS template tone.
Is the platform-API question (closed-vendor SaaS) resolved?
├── Yes → single-phase Appendix.
└── No → Phase 1 (audit + decision gate) + Phase 2 (path-conditional scope). Front Row template.
Does Client run on a single end-to-end vendor?
├── Yes → waive Phase 1 audit fee.
└── No → $5K Phase 1 fee, creditable against Phase 2 month 1.
Are all deliverables portable skills running in Client's own AI workspace?
├── Yes → IP Option B (Client-owned on delivery, no buyout).
├── Some → IP Option C (hybrid; map each deliverable explicitly).
└── No, all hosted → IP Option A (Developer-owned during retainer, 6× buyout).
Is Client below ICP and the retainer is below the $5K anchor?
└── Use the round-number-with-discount pattern (strikethrough $5K → discounted figure).
.docx. Stop at the .md and hand to Cowork.| Purpose | Path |
|---|---|
| Conventions reference | C:\Users\USERNAME\.ai-docs\wiki\practices\sow-conventions.md |
| Client wiki pages | C:\Users\USERNAME\.ai-docs\wiki\clients\<slug>.md |
| Draft SOWs (output here) | C:\Users\USERNAME\OneDrive\Fitted Automation\Agreements\Scopes of Work\ |
| Final / signed | C:\Users\USERNAME\OneDrive\Fitted Automation\Agreements\Final Agreement Drafts\, …\Signed\ |
| MSA template | C:\Users\USERNAME\OneDrive\Fitted Automation\Agreements\Standard MSA Agreement.pdf |
| Granola CLI (hardcoded slugs) | C:\Users\USERNAME\.claude\skills\granola\scripts\granola_api.py |
| Granola search (un-mapped slugs) | C:\Users\USERNAME\.claude\skills\sow\scripts\find_client_meetings.py |
scripts/find_client_meetings.py — regex-search Granola docs by title/participant for clients not in CLIENT_FOLDERS. Re-uses the granola skill's auth + fetch_all_docs machinery; pure delta over the hardcoded list-meetings command.
python C:\Users\USERNAME\.claude\skills\sow\scripts\find_client_meetings.py "<regex>" [--limit 10] [--since YYYY-MM-DD]
Output: <date> <doc_id> <title> | participants: … — feed the <doc_id> into granola_api.py transcript or panels.
development
Restore from the Kopia backup repo in one of two opinionated modes. **wikis** (frequent, default) syncs per-project `.ai-docs/` directories from backup to local project trees — used to move compound-knowledge wikis between machines via the backup drive as sneakernet. **full** (rare) restores all sources to original paths for greenfield machine rebuild. Use when the user says "restore wikis", "sync wikis from backup", "pull the wikis", "I plugged in the backup drive on this machine", "rebuild this machine", "greenfield restore", or "restore everything". For ad-hoc single-file restores, use `backup-ops restore` instead.
documentation
# /bp-iterate Iterate the Fitted Business Plan(s). Manages the **internal canonical** and the **external partner/investor variant**, snapshot-on-version-bump lineage, redaction enforcement between variants, and cross-document coupling. ## When this runs - User says `/bp-iterate`, "iterate the BP," "bump the BP," "update the business plan," "version up the BP," "create / update / refresh the external variant" - A material trigger fires per the BP's own Iteration Log (first 2 new closes / fundi
tools
Run Kopia-based backups of key Windows files and config to an external drive. Use when the user says "back up", "run a backup", "snapshot", "the backup drive is plugged in", or wants to set up / configure backups for the first time. Handles initial repo setup, drive detection by volume label, source enumeration, and snapshot creation with structured exclusions.
testing
Secondary backup operations against the Kopia repo — verify integrity, run maintenance/prune, mirror to a second destination, restore files/folders, or run a quick top-up snapshot of hot directories. Use when the user says "verify backups", "check backup integrity", "prune old snapshots", "restore from backup", "mirror backups to cloud", "quick backup", "top up the backup", or asks about backup health. For the primary backup run, use the `backup` skill instead.