skills/facilitator-score/SKILL.md
Score 9 risk factors for a new project via structured yes/no questionnaire. Use *before* propose-process to skip the manual rubric tax. Returns a factors block (same shape as propose-process output-schema.md) for direct injection into Step 3. NOT for: re-evaluation of an in-flight project (use propose-process re-evaluate mode), one-off complexity guesses (use deliberate), or any use that requires overriding all 9 factors by hand (just use propose-process directly).
npx skillsauth add mikeparcewski/wicked-garden facilitator-scoreInstall 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.
Converts a ~30-second structured Q&A into deterministic factor readings, replacing the ~10-minute manual prose-justification pass in propose-process.
description — project description (required)priors (optional) — wicked-brain search results already fetched; if
absent, call wicked-brain:search with 3–4 salient nouns before proceeding.A factors block matching skills/propose-process/refs/output-schema.md:
{
"factors": {
"reversibility": {"reading": "HIGH|MEDIUM|LOW", "risk_level": "low_risk|medium_risk|high_risk", "why": "..."},
"blast_radius": {"reading": "HIGH|MEDIUM|LOW", "risk_level": "low_risk|medium_risk|high_risk", "why": "..."},
"compliance_scope": {"reading": "HIGH|MEDIUM|LOW", "risk_level": "low_risk|medium_risk|high_risk", "why": "..."},
"user_facing_impact": {"reading": "HIGH|MEDIUM|LOW", "risk_level": "low_risk|medium_risk|high_risk", "why": "..."},
"novelty": {"reading": "HIGH|MEDIUM|LOW", "risk_level": "low_risk|medium_risk|high_risk", "why": "..."},
"scope_effort": {"reading": "HIGH|MEDIUM|LOW", "risk_level": "low_risk|medium_risk|high_risk", "why": "..."},
"state_complexity": {"reading": "HIGH|MEDIUM|LOW", "risk_level": "low_risk|medium_risk|high_risk", "why": "..."},
"operational_risk": {"reading": "HIGH|MEDIUM|LOW", "risk_level": "low_risk|medium_risk|high_risk", "why": "..."},
"coordination_cost": {"reading": "HIGH|MEDIUM|LOW", "risk_level": "low_risk|medium_risk|high_risk", "why": "..."}
}
}
reading (backward-compat): HIGH = least risky, LOW = most risky. This direction is counter-intuitive
for downstream display. Prefer risk_level when showing results to users: low_risk / medium_risk /
high_risk maps directly to standard risk language.
## Procedure
### Step 1 — Fetch priors (if not supplied)
wicked-brain:search query="{3-4 salient nouns from description}" limit=5
Record up to 3 priors that materially affect the answers (e.g. prior rollbacks
raise novelty; prior data migrations raise reversibility).
### Step 2 — Render and answer the questionnaire
Run this to get the questionnaire markdown:
```bash
sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" \
"${CLAUDE_PLUGIN_ROOT}/scripts/crew/factor_questionnaire.py" render
For each yes/no question: answer based on the description + priors.
When uncertain on a question, invoke wicked-garden:ground with the
question text before answering. Example:
Are there external API consumers depending on a surface being removed?
If unclear → wicked-garden:ground question="external API consumers for this surface"
Do NOT answer "yes" speculatively. Uncertainty without grounding → answer "no" and note it in the override rationale below.
Pass the YAML answers block to the scorer:
sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" \
"${CLAUDE_PLUGIN_ROOT}/scripts/crew/factor_questionnaire.py" score \
--answers-file "${TMPDIR:-/tmp}/answers.yaml"
Or call score_all(answers) directly when composing from Python.
The questionnaire score is the basis, not the verdict. You (Claude) may override individual readings when:
Document every override in the why field:
"reversibility": {
"reading": "LOW",
"why": "3 pts from: r1, r2 — OVERRIDE: prior #proj-foo showed silent data loss on similar migration"
}
Return the JSON factors block to the caller (propose-process). The caller handles specialists, phases, rigor, tasks.
skills/propose-process/refs/factor-definitions.md — what LOW / MEDIUM / HIGH
mean per factor. When the questionnaire score and your prose read disagree, the
factor-definitions calibration examples are the tiebreaker.
factor_questionnaire.py QUESTIONNAIRE dict.why field.propose-process
└─ facilitator-score ← this skill (Step 2.5 of propose-process)
└─ wicked-garden:ground ← called per uncertain question
development
--- name: large-scale-migration description: How to execute a LARGE MECHANICAL change across any codebase with LEVERAGE instead of an agent-grind or hand-edits — a cross-cutting migration, refactor, rename, dialect/framework/DB port, library adoption, or bulk transform. The map→transform→gate pattern: a deterministic transform driven by a source-of-truth map, proven by a differential-equivalence gate. Use when the work is "migrate all X to Y", "rename Z everywhere", "port to a new DB/dialect/fra
testing
v11 LLM-based work-shape classifier. Replaces the regex archetype detector with the model's own reasoning. Reads the user's prompt, picks the right archetype(s) from the catalog, identifies signals (blast_radius, novelty, reversibility, etc.), and persists to SessionState so subsequent turns steer correctly. Use when: the prompt_submit hook emitted a `<wg classify-due />` directive, OR explicitly invoked at session start, OR when re-classifying after the user changes scope mid-session.
tools
v11 work-shape archetype runner. When a prompt has been routed to one of the 9 archetypes (triage, explore, specify, decide, ship, review, incident, build, migrate), this skill is the entry point. It picks the right per-archetype playbook from refs/ and executes the phase shape declared in `.claude-plugin/archetypes.json`. Use when: a `<wg archetype="X">` or `<wg archetypes>` system-reminder tag appears, an explicit "let's run the X archetype" request, or when one of the per-archetype slash commands resolves to this skill.
development
Show or set the session intent variable. Intent gates how loud the framework is — simple-edit (silent), feature/research (synthesis directive), rigor (full crew context). Auto-detected on turn 1; this skill overrides explicitly. Sticky for the session. Use when: "set intent", "intent override", "/wicked-garden:intent", "make the framework quiet", "force rigor", "what's my intent".