Agent skill
firm-pdca-setup
Set up a files-only PDCA measurement area for one process or outcome in a professional service firm — outcome, metrics, direction, source of truth, cadence, and baseline.
Filed under Outbound email.
From b2bforce/b2bforce · 29 skills · 2 · pushed 2026-08-21
What it does when it runs
Set up a files-only PDCA measurement area for one process or outcome in a professional service firm — outcome, metrics, direction, source of truth, cadence, and baseline. Use when the user wants to measure whether marketing, sales, delivery, or content work actually moves a business outcome, or asks for KPIs, a scoreboard, or a measurement loop. Read firm profile first.
Read from the skill and the 1 file bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.
- Keys and connectors you must supply
- None found.
- Hosts it reaches
- No third-party host appears in the skill or its bundled files.
- Tool permissions it declares
- No
allowed-toolsin the frontmatter. It only issues instructions, so there is nothing to bound. - Actions present in the files
- None. Instructions only.
Install it
View source on GitHub ↗git clone --depth 1 --filter=blob:none --sparse https://github.com/b2bforce/b2bforce.git /tmp/b2bforce git -C /tmp/b2bforce sparse-checkout set ".agents/skills/firm-pdca-setup" mkdir -p ~/.claude/skills/firm-pdca-setup cp -R "/tmp/b2bforce/.agents/skills/firm-pdca-setup/." ~/.claude/skills/firm-pdca-setup/
Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗
The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.
The skill
Source on GitHub ↗Reproduced in full from b2bforce/b2bforce/blob/7682ed90c62190a0f3c09eb135596d08bd6890bc/.agents/skills/firm-pdca-setup/SKILL.md, which is licensed MIT (skill frontmatter). 1,343 words, 18 headings.
PDCA Setup
Creates one measurement area under workspace/pdca/{area}/. An area owns exactly
one business outcome and the metrics that evidence it.
Everything is committed Markdown. There is no hidden runtime state, no database, and no subscription. The scoreboard is a table in the repo.
Read First
workspace/firm/profile.md— what the firm sells and to whom.workspace/firm/services/{slug}.md— the service this area serves.workspace/pdca/README.md— existing areas, so you do not create a duplicate.
When to Use
- User wants to know whether content, prospecting, or delivery work is producing results.
- User asks for KPIs, a scoreboard, targets, or "how do we measure this".
- A skill produced artifacts for weeks and nobody has checked the outcome.
- Before
firm-pdca-cycle— an area must exist first.
Core Rules
Brand and owner. In a multi-brand workspace the area README declares brand: {slug} or brand: all — one outcome measured with a brand dimension, never one cloned area per brand; scoreboard rows label the brand and market metrics are never summed across brands (Brand Scope Gate in AGENTS.md). Once workspace/firm/people/ has entries, the area's owner: must be a person slug from that registry (scripts/validate-brands.sh checks it).
- One area = one outcome = one folder. Do not create an area that measures "marketing" in general.
- Every metric must name a source of truth. If the user cannot say where the
number comes from, set the metric
source: waitingand do not invent a baseline. - Start with exactly one area. Refuse to create a second area in the same session. A firm that cannot sustain one cadence will not sustain three.
- Outputs are not outcomes. Every area needs at least one outcome metric;
output metrics are marked
role: outputand can never be the reason a cycle is called a success. - Never invent a baseline, a target, or a benchmark. An empty baseline with
quality: waitingis a valid, honest state.
Cadence — Two Speeds, Not One
Professional service firms have long sales cycles. Marketing and business development work influences pipeline months later, so a weekly outcome number is noise and a weekly target invites the firm to optimize the wrong thing.
Set two cadences per area:
| Cadence | What it measures | Default |
|---|---|---|
fast_cadence | Outputs and leading indicators | weekly or biweekly |
outcome_cadence | The business outcome | quarterly |
Rules:
- Only
outcome_cadencechecks may justifyscaleorstopdecisions. - A fast check may never be reported as outcome movement.
- If the user insists on a weekly outcome number, record the source of truth and the expected lag in the area README so the lag is visible later.
Metric Packs
Do not invent a metric set from scratch. Pick a pack, then cut it to the metrics whose source of truth actually exists.
Full definitions, directions, and workspace bindings:
references/metric-packs.md.
| Pack | Measures | Needs |
|---|---|---|
content | Publishing throughput, draft quality gate pass rate, buyer-question coverage | Nothing beyond this repo — the only pack that works on a fresh clone |
pipeline | Fit calls, proposals sent, win rate, pipeline value | A sales pipeline the firm records somewhere |
visibility | Answer-engine citation rate, share of answer, placements earned | An AI-visibility monitoring habit |
retention | Net revenue retention, logo churn, expansion share, referenceable clients | A client record and renewal dates |
delivery | On-time delivery, out-of-scope hours, written success definitions | Engagement records |
Start with content unless the user already has a source of truth for another
pack. It is measurable from committed files today, which means the first cycle
can close with real numbers instead of N/D.
Workflow
1. Define the area
Ask for, and do not guess:
- the one business outcome this area should move,
- which service and ICP it serves,
- who owns it,
- what the agent may do without asking (see Autonomy Boundaries).
Slug the area in kebab-case: content-to-pipeline, retainer-retention.
2. Choose metrics
Pick 3–6 metrics. For each, record name, unit, direction, role, and source.
direction: higher_is_better | lower_is_betterrole: outcome | leading | outputsource:a named system, report, or file path — orwaiting
Refuse to proceed past six metrics. A scoreboard nobody fills is worse than no scoreboard, because it implies measurement that is not happening.
3. Record the baseline
For each metric, write the current value with its date range, source, and
quality: high, medium, low, or waiting.
If a source of truth is missing, write waiting and add a concrete request to
the area README stating who must provide what. Do not estimate.
4. Write the area files
workspace/pdca/{area}/
├── README.md # outcome, metrics, sources, cadence, owner, autonomy, baseline
├── cycles/ # created by firm-pdca-cycle
├── scoreboard.md # header only; rows are appended as cycles close
├── evals.md # acceptance-criteria patterns and regression tests
└── errors.md # repeated failures and the guard added for each
README.md frontmatter:
---
area: content-to-pipeline
outcome: More qualified implementation interest from published content
owner: founder
service: seo-retainer
icp: mid-market-saas
fast_cadence: weekly
outcome_cadence: quarterly
timezone: Europe/Warsaw
metric_pack: content
created: 2026-07-25
updated: 2026-07-25
---
Body sections, in this order:
## Outcome— one sentence, business language, no metric names.## Metrics— the table below.## Baseline— value, date range, source, quality per metric.## Autonomy boundaries— what the agent may do, and what needs approval.## Open data requests— everywaitingsource with an owner and a date.
Metrics table:
| Metric | Unit | Direction | Role | Source | Quality |
|--------|------|-----------|------|--------|---------|
| Qualified implementation interest | count | higher_is_better | outcome | Deal notes | medium |
| Drafts passing validator first try | % | higher_is_better | leading | validate-content-draft.sh | high |
| Posts published vs planned | count | higher_is_better | output | Content queue | high |
scoreboard.md is created with the header row only. Do not pre-generate a
column or row per future week — that is placeholder content, and the repo's
Minimal Files Rule forbids it. Rows are appended by firm-pdca-cycle when a
cycle closes.
# Scoreboard — {area}
Appended when a cycle closes. Never edit a past row.
| Check date | Cadence | Metric | Plan | Actual | Status | Cycle |
|------------|---------|--------|-----:|-------:|--------|-------|
5. Seed evals
evals.md starts with the acceptance-criteria patterns this area will reuse and
the deterministic checks available. At minimum, record that
scripts/validate-pdca-cycle.sh is the structural gate.
6. Hand off
Tell the user the area is ready and that the next step is firm-pdca-cycle. Do
not open the first cycle in the same run — setup and planning are different
decisions, and bundling them tends to produce a plan the user never agreed to.
Autonomy Boundaries
Record these explicitly per area, because they differ by firm. Default split:
Allowed without asking: read data sources, create and update files under
workspace/pdca/{area}/, draft experiments, propose next-cycle plans.
Requires approval: publishing anything public, contacting a client or prospect, spending money, changing tracking or permissions, anything irreversible or reputational.
Testing Requirements
- Create one area with the
contentpack and at least onewaitingmetric. - Confirm
README.md,scoreboard.md,evals.md, anderrors.mdexist and thatscoreboard.mdhas a header and no data rows. - Confirm the
waitingmetric appears under## Open data requests. - Run
firm-pdca-cycleand confirm it finds the area.
Reference Files
| File | Content |
|---|---|
references/metric-packs.md | Metric definitions, directions, and workspace bindings per pack |
Related Skills
| Skill | When |
|---|---|
firm-context | Before setup — firm profile and services must exist |
firm-pdca-cycle | Runs the Plan → Do → Check → Act cycle in this area |
firm-pdca-eval | Independent evaluation before a cycle's Check |
Files bundled with it
These load only when the skill asks for them, so they cost nothing until it runs.
Other skills for the same job
Different authors, same problem. Matched on the words in the skill name, across every library in the catalogue except this one.
- ab-test-setup by OpenClaudia · 664
- ab-test-setup by louisblythe · 136
- ab-test-setup by manojbajaj95 · 92
- setup by himanshusaleria · 16
- table-setup by Frontal-so · 4
- email-infrastructure-setup by devangk003 · 0
- setup-outreach-campaign by edupegoretti · 0
Need help setting it up?
This page tells you what firm-pdca-setup does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.
Book a call →The directory stays free. There is nothing gated behind this.