agentsclimarketplace

Coach

Skill nguyenvanphituoc/shapeup-sdlc-plugin/skills/coach

Use this skill to turn raw Product Owner / Tech Lead feedback at the Ship Sign-off (L4 Gate) into structured, team-shared guidelines that future harness runs read back. Triggers on: "coach this feedback", "record this for next sprint", "update the knowledge base", "RLHF the harness", and Vietnamese "ghi lại cho sprint sau", "cập nhật knowledge base". tech-lead invokes it automatically at GATE L4 when the PO gives substantive feedback instead of a bare 'y'. NOT for grading work (spec-evaluator), fixing bugs (task-executor), or filing discovered tasks (the ledger).From its SKILL.md

Install
npx -y skills add nguyenvanphituoc/shapeup-sdlc-plugin --skill coach

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

12.8 KB, ~3.1k tokens by cl100k_base, as published. Nobody here has run it

Coach Skill — RLHF for the harness

The /coach skill closes the learning loop. After a feature ships, the PO/TL drops raw, unstructured feedback at the L4 Gate ("the executor keeps over-engineering DTOs", "the BA under-scopes mobile"). The coach distills that into durable guidelines and files them where the relevant worker will read them on its next run — so the lesson is learned once and applied by the whole team forever, not re-explained every sprint.

Two properties make this useful and were missing before:

  1. Team-shared, not local. Guidelines are written under docs/shapeup-sdlc/knowledge-base/, which is committed (the .shapeup-sdlc/ run-trace root is gitignored — guidelines written there would never reach a teammate). A git pull is all a team member needs to inherit the harness's accumulated judgment.
  2. Read back, not write-only. Each guideline is filed under the one skill that will act on it, in that skill's own file, so the consumer loads only its own rules. task-executor, ba-pitch-analyzer, and qa-edge-hunter each read their file at the top of their run.
PO feedback at L4 ─► /coach ─► [parse into candidate rules] ─► ⏸ GATE COACH-1 (categorize, ask — never assume)
                                                                          │
                          docs/shapeup-sdlc/knowledge-base/<skill>.md ◄───┤  (one file per coachable skill, committed)
                                                                          │
                  next run: task-executor / ba-pitch-analyzer / qa-edge-hunter reads its own file
                                                                          │
              docs/shapeup-sdlc/knowledge-base/harness-defects.md ◄───────┘  (mechanism at fault →
                  drafted raw idea for the Betting Table — read by no worker, committed)

Coachable skills (the only valid categories)

A guideline is only useful if a worker reads it back. These three workers have a read-side hook; they are the complete set of categories the gate may offer:

CategoryFileThe worker reads it atGood for
task-executordocs/shapeup-sdlc/knowledge-base/task-executor.mdPhase 1 (Context Load)implementation discipline, code style, surgical-change habits, recurring over/under-engineering
ba-pitch-analyzerdocs/shapeup-sdlc/knowledge-base/ba-pitch-analyzer.mdPhase 1 (Ingest & Scan)scoping, task decomposition, DDD/spec habits, missed test-surface patterns
qa-edge-hunterdocs/shapeup-sdlc/knowledge-base/qa-edge-hunter.mdPhase Q1 (Charter Map)recurring edge classes, lenses that keep finding bugs, areas worth probing

Not coachable. spec-evaluator is deliberately excluded — the harness has a single-judge rule and the knowledge base is guidance, never an invariant; routing rules into the evaluator would turn advice into a second grader. orient, shapeup, tech-lead, and translator have no read-side hook, so a rule filed there would never be read. If feedback truly targets one of these, say so plainly — do not force-fit it into a coachable category.

Harness defect ≠ worker steering. When the feedback's root cause is the mechanism itself — a hook that fail-opens, a gate that reads the wrong file, two skill contracts that contradict each other — no amount of steering a worker fixes it, and filing it as a KB rule misdiagnoses a defect as a habit (island-escape's KB-BA-002 filed an orchestration/hook defect as BA guidance, on a premise the skill contracts contradict). That is what the harness-defect category below is for: the coach records it in the committed defect register as a drafted raw idea for the Betting Table — the debt-free path ("remaining findings + new feedback → new raw idea") — and it never lands in any worker's KB.


Envelope contract — the domain layer

Orchestrated, this skill is dispatched like every worker: a WorkOrder in (--order <path>, operation coach), a WorkResult out. Standalone, the raw feedback is passed directly; it maps onto the one payload field registered for this worker in the central domain registry (skills/tech-lead/schemas/domain.schema.json, x-payload-by-worker):

Payload fieldStandalone formMeaning
payload.feedbackpositional textThe PO's raw L4 feedback to distill and categorize at GATE COACH-1

The WorkResult may carry only files_touched, artifacts, assumptions, deviations (x-result-by-worker): the knowledge-base files written under docs/shapeup-sdlc/knowledge-base/ return as files_touched/artifacts — the coach itself is not coachable and never returns discoveries, verdicts, or task results.


Instructions

Step 1 — Parse the raw feedback into discrete candidate rules

Feedback is usually a blob covering several points. Split it into atomic, generalized candidate rules — one actionable lesson each. Generalize the specific incident into a habit ("DTO had 9 fields nobody used" → "Prefer the minimum DTO that satisfies the AC; don't add speculative fields"). Keep the originating why — a rule without its reason gets ignored or misapplied.

Step 2 — ⏸ GATE COACH-1: Categorize (ASK, never assume)

This is the load-bearing gate. Do not infer which skill a rule belongs to — a miscategorized rule lands in a file the wrong worker reads (or no worker reads). Present every candidate rule and ask the PO to assign each one. Emit this block, then stop and wait:

⏸ GATE COACH-1 — Categorize feedback
For each candidate rule, which skill should act on it?
Valid: [task-executor] [ba-pitch-analyzer] [qa-edge-hunter]
       [harness-defect — mechanism at fault, file as raw idea] [skip — not coachable]

  R1. "<generalized rule>"   (why: <reason>)        → ?
  R2. "<generalized rule>"   (why: <reason>)        → ?
  ...

Reply with an assignment per rule, e.g. "R1→task-executor, R2→harness-defect, R3→skip".
A rule may map to more than one skill if it genuinely applies to both (e.g. "R1→task-executor, ba-pitch-analyzer").

Rules to honor at this gate:

  • No silent defaulting. If the PO's reply is ambiguous or leaves a rule unassigned, ask once more for that rule specifically. Never pick a category on the PO's behalf.
  • skip is a first-class answer. Feedback aimed at a non-coachable skill, or one-off context with no general lesson, is recorded as skipped in your summary and not written anywhere.
  • Respect the single-judge rule. If the PO tries to assign a rule to spec-evaluator, surface that it isn't coachable (guidance ≠ invariant) and offer the nearest real target (usually ba-pitch-analyzer, which owns the spec/test-surface) or skip.
  • Recommend harness-defect when the mechanism is at fault. If a candidate rule's "why" blames a gate, hook, script, or a contradiction between skill contracts (rather than a worker's judgment), say so and recommend harness-defect — but the PO still decides. The telltale: the rule asks a worker to compensate for something the harness was supposed to enforce ("cross-check X because the bookkeeping step gets skipped").

Step 3 — Merge each assigned rule into its skill's knowledge-base file

For each <skill> that received at least one rule:

  1. Ensure docs/shapeup-sdlc/knowledge-base/<skill>.md exists (create from the template below if not — the directory is committed, so the file ships to the team on the next commit).
  2. Read the existing file. Merge the new rule(s):
    • Consolidate overlapping rules into one stronger statement.
    • Deduplicate — if the lesson is already captured, reinforce/sharpen it rather than adding a near-duplicate. Bump nothing silently; note the merge in your summary.
    • Generalize a specific incident into a reusable guideline.
  3. Assign each new rule a stable id KB-<SKILL-INITIALS>-NNN (e.g. KB-TE-001, KB-BA-004, KB-QA-002) and stamp it with the originating feature slug + date so a future reader can trace it back.
  4. Rewrite the file. Keep it tight — the consumer loads it every run, so prune stale or contradicted rules rather than letting it grow unboundedly. A rule whose premise the current skill contracts contradict is a harness-defect in disguise — move it to the register (Step 3b) and note the reclassification, don't keep re-teaching a misdiagnosis.

Step 3b — File harness-defect rules to the defect register (raw ideas, not steering)

For each rule the PO assigned harness-defect, append an entry to docs/shapeup-sdlc/knowledge-base/harness-defects.md (create from the template below if missing). This file is committed but read by no worker — it is the PO's backlog of drafted raw ideas for the Betting Table, not guidance. Each entry gets a stable id HD-NNN, the observed symptom, the suspected mechanism at fault, and a one-paragraph raw-idea draft the PO can carry straight into Shaping. A report-only mention would evaporate (the write-only failure this skill exists to prevent); a worker-KB entry would steer the wrong actor — the register is the one spot that is both durable and inert.

# Harness Defect Register

> Filed by `/coach` from Ship-Gate (L4) feedback the PO categorized as `harness-defect` at
> GATE COACH-1. **Read by no worker** — these are drafted raw ideas for the Betting Table
> (the debt-free path), not guidelines. Remove an entry when its fix ships or its pitch is bet.

## Defects
- **HD-001** — <symptom observed at ship>. Suspected mechanism: <gate/hook/skill contract>.
  Raw idea: <one-paragraph pitch seed>. · from `<feature-slug>` (<date>)

Step 4 — Report back

Summarize: which rules went to which file (with ids), which were consolidated into existing rules, which were filed as harness defects (HD ids — remind the PO these await a Betting Table decision, nothing acts on them automatically), and which were skipped (and why). Remind the PO that these are guidelines the named workers read on their next run — they steer task-executor, ba-pitch-analyzer, and qa-edge-hunter, but they are not invariants and the spec-evaluator verdict is unaffected (single-judge rule). Note that the files are committed, so a teammate inherits them on git pull.


Knowledge-base file template

When creating docs/shapeup-sdlc/knowledge-base/<skill>.md for the first time:

# Knowledge Base — <skill>

> Team-shared guidelines distilled from PO/TL feedback at the Ship Gate (L4) by `/coach`.
> Read by `<skill>` at the top of its run. **Guidelines, not invariants** — they steer the
> worker; they never override a spec or change the spec-evaluator verdict (single-judge rule).
> Committed on purpose: a teammate inherits these on `git pull`.

## Guidelines
- **KB-<XX>-001** — <generalized rule>. _(why: <reason>)_  ·  from `<feature-slug>` (<date>)
- **KB-<XX>-002** — <generalized rule>. _(why: <reason>)_  ·  from `<feature-slug>` (<date>)

Hard Rules

RuleRationale
Never assume a category — GATE COACH-1 asks the PO for every ruleA miscategorized rule reaches the wrong reader or none; the PO's intent is authoritative
Only task-executor, ba-pitch-analyzer, qa-edge-hunter are valid worker categoriesThey are the only workers with a read-side hook; a rule elsewhere is never read
A mechanism-at-fault rule goes to the defect register (harness-defect), never a worker KBSteering a worker to compensate for a broken gate/hook misdiagnoses a defect as a habit and hides it from the Betting Table
spec-evaluator is never a categorySingle-judge rule: the KB is guidance, not an invariant — routing rules into the judge creates a second grader
Write only under docs/shapeup-sdlc/knowledge-base/ (committed)The .shapeup-sdlc/ run-trace is gitignored; guidelines there never reach the team
Guidelines, not invariantsThe consumer weighs them; they don't gate, score, or override the spec
Keep each file tight — prune as you mergeConsumers load it every run; unbounded growth becomes token cost and noise

What ships with it: 1 file

1.3 KB alongside SKILL.md

evals/

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.