wicked-garden 12.37.1 → 12.37.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/components.json +3 -7
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +12 -1
- package/docs/domains.md +1 -1
- package/docs/outgov-per-turn.md +1 -1
- package/package.json +1 -1
- package/scripts/platform/guard_pipeline.py +1 -1
- package/skills/agentic-safety-reviewer/SKILL.md +0 -1
- package/skills/core/SKILL.md +2 -0
- package/skills/{runtime-exec/SKILL.md → core/refs/runtime.md} +7 -19
- package/skills/data-engineer/SKILL.md +0 -1
- package/skills/engineering/SKILL.md +3 -0
- package/skills/{engineering-conformance-reviewer/SKILL.md → engineering/refs/conformance.md} +12 -27
- package/skills/jam/SKILL.md +16 -23
- package/skills/jam/refs/council-verdict.md +1 -1
- package/skills/jam/refs/revisit.md +3 -16
- package/skills/jam-brainstorm-facilitator/SKILL.md +24 -43
- package/skills/jam-council/SKILL.md +31 -39
- package/skills/mem-capture/SKILL.md +2 -6
- package/skills/mem-ingest/SKILL.md +2 -6
- package/skills/persona/SKILL.md +10 -8
- package/skills/persona/refs/as.md +117 -12
- package/skills/platform-security-engineer/SKILL.md +0 -2
- package/skills/qe/SKILL.md +31 -31
- package/skills/qe/refs/accept.md +24 -32
- package/skills/qe/refs/author.md +5 -9
- package/skills/qe/refs/campaign-grading.md +1 -1
- package/skills/qe/refs/campaign.md +4 -7
- package/skills/qe/refs/execute.md +7 -11
- package/skills/qe/refs/insight.md +5 -9
- package/skills/qe/refs/integration.md +1 -1
- package/skills/qe/refs/plan.md +9 -18
- package/skills/qe/refs/review.md +11 -17
- package/skills/qe-a11y-test-engineer/SKILL.md +2 -17
- package/skills/qe-acceptance-test-executor/SKILL.md +5 -16
- package/skills/qe-acceptance-test-reviewer/SKILL.md +3 -10
- package/skills/qe-acceptance-test-writer/SKILL.md +3 -14
- package/skills/qe-ai-feature-test-engineer/SKILL.md +5 -30
- package/skills/qe-chaos-test-engineer/SKILL.md +5 -20
- package/skills/qe-code-analyzer/SKILL.md +2 -9
- package/skills/qe-compliance-test-engineer/SKILL.md +5 -21
- package/skills/qe-contract-testing-engineer/SKILL.md +2 -9
- package/skills/qe-coverage-archaeologist/SKILL.md +2 -9
- package/skills/qe-data-quality-tester/SKILL.md +2 -9
- package/skills/qe-e2e-orchestrator/SKILL.md +2 -9
- package/skills/qe-exploratory-tester/SKILL.md +2 -9
- package/skills/qe-flaky-test-hunter/SKILL.md +5 -10
- package/skills/qe-fuzz-property-engineer/SKILL.md +2 -9
- package/skills/qe-iac-test-engineer/SKILL.md +5 -10
- package/skills/qe-incident-to-scenario-synthesizer/SKILL.md +5 -20
- package/skills/qe-integration-test-engineer/SKILL.md +2 -9
- package/skills/qe-load-performance-engineer/SKILL.md +2 -9
- package/skills/qe-localization-test-engineer/SKILL.md +2 -9
- package/skills/smaht/SKILL.md +11 -17
- package/skills/smaht/discovery/SKILL.md +6 -7
- package/skills/smaht/intent/SKILL.md +4 -3
- package/skills/smaht/propose-skills/SKILL.md +6 -5
- package/skills/smaht/refs/briefing.md +1 -3
- package/skills/integration-discovery/SKILL.md +0 -170
- package/skills/integration-discovery/refs/capabilities.md +0 -282
- package/skills/integration-discovery/refs/cli-detection.md +0 -297
- package/skills/integration-discovery/refs/discovery-sources.md +0 -233
- package/skills/integration-discovery/refs/task-patterns.md +0 -206
- package/skills/persona-agent/SKILL.md +0 -122
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
"_comment": "Issue #328: Component declarations for wicked-garden plugin. Claude Code plugin.json does not yet support inline component declarations beyond path overrides. This manifest documents all components for tooling, validation, and future schema support. When plugin.json gains a 'components' field, merge this data into plugin.json. The plugin is skills-only: former commands/ became actions of consolidated per-domain skills, and former agents/ became standalone context:fork worker skills (enumerated under fork_skills). Regenerate derived blocks with scripts/ci/sync_components.py.",
|
|
3
3
|
"domains": ["agentic", "crew", "data", "engineering", "jam", "mem", "persona", "platform", "product", "qe", "search", "smaht"],
|
|
4
4
|
"summary": {
|
|
5
|
-
"skills":
|
|
6
|
-
"fork_skills":
|
|
5
|
+
"skills": 140,
|
|
6
|
+
"fork_skills": 69,
|
|
7
7
|
"hooks": 13,
|
|
8
8
|
"specialists": 7
|
|
9
9
|
},
|
|
@@ -28,12 +28,10 @@
|
|
|
28
28
|
"draft": ["draft"],
|
|
29
29
|
"engineering": ["architecture", "backend", "debugging", "docs", "engineering", "frontend", "integration", "large-scale-migration", "patch", "system-design", "unit-test-quality"],
|
|
30
30
|
"engineering-api-documentarian": ["engineering-api-documentarian"],
|
|
31
|
-
"engineering-conformance-reviewer": ["engineering-conformance-reviewer"],
|
|
32
31
|
"engineering-migration-engineer": ["engineering-migration-engineer"],
|
|
33
32
|
"engineering-solution-architect": ["engineering-solution-architect"],
|
|
34
33
|
"governed-worker": ["governed-worker"],
|
|
35
34
|
"ground": ["ground"],
|
|
36
|
-
"integration-discovery": ["integration-discovery"],
|
|
37
35
|
"jam": ["jam"],
|
|
38
36
|
"jam-brainstorm-facilitator": ["jam-brainstorm-facilitator"],
|
|
39
37
|
"jam-council": ["jam-council"],
|
|
@@ -41,7 +39,6 @@
|
|
|
41
39
|
"mem-capture": ["mem-capture"],
|
|
42
40
|
"mem-ingest": ["mem-ingest"],
|
|
43
41
|
"persona": ["persona"],
|
|
44
|
-
"persona-agent": ["persona-agent"],
|
|
45
42
|
"platform": ["audit", "compliance", "errors", "gate-benchmark-rebaseline", "gh-cli", "github-actions", "gitlab-ci", "glab-cli", "health", "observability", "peer-health", "platform", "prereq-doctor"],
|
|
46
43
|
"platform-compliance-officer": ["platform-compliance-officer"],
|
|
47
44
|
"platform-privacy-expert": ["platform-privacy-expert"],
|
|
@@ -95,7 +92,6 @@
|
|
|
95
92
|
"qe-ui-component-test-engineer": ["qe-ui-component-test-engineer"],
|
|
96
93
|
"qe-visual-regression-engineer": ["qe-visual-regression-engineer"],
|
|
97
94
|
"repo-learn": ["repo-learn"],
|
|
98
|
-
"runtime-exec": ["runtime-exec"],
|
|
99
95
|
"search": ["codebase-narrator", "search"],
|
|
100
96
|
"smaht": ["discovery", "intent", "propose-skills", "smaht"],
|
|
101
97
|
"swarm": ["swarm"],
|
|
@@ -103,7 +99,7 @@
|
|
|
103
99
|
"workflow": ["workflow"],
|
|
104
100
|
"worktrees": ["worktrees"]
|
|
105
101
|
},
|
|
106
|
-
"fork_skills": ["wicked-garden-agentic-architect", "wicked-garden-agentic-performance-analyst", "wicked-garden-agentic-safety-reviewer", "wicked-garden-archetype", "wicked-garden-classify", "wicked-garden-data-engineer", "wicked-garden-domain-coverage", "wicked-garden-domain-extractor", "wicked-garden-domain-modeler", "wicked-garden-engineering-api-documentarian", "wicked-garden-engineering-
|
|
102
|
+
"fork_skills": ["wicked-garden-agentic-architect", "wicked-garden-agentic-performance-analyst", "wicked-garden-agentic-safety-reviewer", "wicked-garden-archetype", "wicked-garden-classify", "wicked-garden-data-engineer", "wicked-garden-domain-coverage", "wicked-garden-domain-extractor", "wicked-garden-domain-modeler", "wicked-garden-engineering-api-documentarian", "wicked-garden-engineering-migration-engineer", "wicked-garden-engineering-solution-architect", "wicked-garden-ground", "wicked-garden-jam-brainstorm-facilitator", "wicked-garden-jam-council", "wicked-garden-mem-capture", "wicked-garden-mem-ingest", "wicked-garden-platform-compliance-officer", "wicked-garden-platform-privacy-expert", "wicked-garden-platform-security-engineer", "wicked-garden-product-a11y-expert", "wicked-garden-product-requirements-analyst", "wicked-garden-product-ui-reviewer", "wicked-garden-product-ux-designer", "wicked-garden-product-value-strategist", "wicked-garden-qe-a11y-test-engineer", "wicked-garden-qe-acceptance-test-executor", "wicked-garden-qe-acceptance-test-reviewer", "wicked-garden-qe-acceptance-test-writer", "wicked-garden-qe-ai-feature-test-engineer", "wicked-garden-qe-chaos-test-engineer", "wicked-garden-qe-code-analyzer", "wicked-garden-qe-compliance-test-engineer", "wicked-garden-qe-contract-testing-engineer", "wicked-garden-qe-coverage-archaeologist", "wicked-garden-qe-data-quality-tester", "wicked-garden-qe-e2e-orchestrator", "wicked-garden-qe-exploratory-tester", "wicked-garden-qe-flaky-test-hunter", "wicked-garden-qe-fuzz-property-engineer", "wicked-garden-qe-iac-test-engineer", "wicked-garden-qe-incident-to-scenario-synthesizer", "wicked-garden-qe-integration-test-engineer", "wicked-garden-qe-load-performance-engineer", "wicked-garden-qe-localization-test-engineer", "wicked-garden-qe-mutation-test-engineer", "wicked-garden-qe-observability-test-engineer", "wicked-garden-qe-production-quality-engineer", "wicked-garden-qe-release-readiness-engineer", "wicked-garden-qe-requirements-quality-analyst", "wicked-garden-qe-risk-assessor", "wicked-garden-qe-scenario-executor", "wicked-garden-qe-security-test-engineer", "wicked-garden-qe-semantic-reviewer", "wicked-garden-qe-snapshot-hygiene-auditor", "wicked-garden-qe-test-automation-engineer", "wicked-garden-qe-test-code-quality-auditor", "wicked-garden-qe-test-data-manager", "wicked-garden-qe-test-designer", "wicked-garden-qe-test-impact-analyzer", "wicked-garden-qe-test-oracle", "wicked-garden-qe-test-strategist", "wicked-garden-qe-testability-reviewer", "wicked-garden-qe-ui-component-test-engineer", "wicked-garden-qe-visual-regression-engineer", "wicked-garden-swarm", "wicked-garden-wickedizer", "wicked-garden-workflow", "wicked-garden-worktrees"],
|
|
107
103
|
"hooks": ["SessionStart", "UserPromptSubmit", "PreToolUse", "PostToolUse", "PostToolUseFailure", "TaskCompleted", "SubagentStart", "SubagentStop", "PermissionRequest", "Notification", "PreCompact", "Stop", "SessionEnd"],
|
|
108
104
|
"specialists": [
|
|
109
105
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name": "wicked-garden", "owner": {"name": "Mike Parcewski"}, "plugins": [{"name": "wicked-garden", "source": "./", "description": "Your coding agent already plans and swarms \u2014 Wicked Garden is the curated toolkit for what it can't: proof-not-claims gates, code links grep can't see, deterministic refactor, cross-session memory, real multi-model second opinions. Don't fight the harness; fill its gaps. The gate needs wicked-vault (a self-contained infra peer, installed directly) and re-derives through garden's built-in engine; estate/bus are opt-in layers (wicked-testing and wicked-brain are retired \u2014 QE ships in-catalog as the qe domain, memory lives in wicked-estate).", "version": "12.37.
|
|
1
|
+
{"name": "wicked-garden", "owner": {"name": "Mike Parcewski"}, "plugins": [{"name": "wicked-garden", "source": "./", "description": "Your coding agent already plans and swarms \u2014 Wicked Garden is the curated toolkit for what it can't: proof-not-claims gates, code links grep can't see, deterministic refactor, cross-session memory, real multi-model second opinions. Don't fight the harness; fill its gaps. The gate needs wicked-vault (a self-contained infra peer, installed directly) and re-derives through garden's built-in engine; estate/bus are opt-in layers (wicked-testing and wicked-brain are retired \u2014 QE ships in-catalog as the qe domain, memory lives in wicked-estate).", "version": "12.37.2"}], "version": "12.37.2"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wicked-garden",
|
|
3
|
-
"version": "12.37.
|
|
3
|
+
"version": "12.37.2",
|
|
4
4
|
"description": "Your coding agent's harness already plans and swarms; Wicked Garden is the curated toolkit for what it can't do alone. Proof, not claims \u2014 gates re-derive 'done' through the internal loom engine (fail-closed, independently attested via wicked-vault), so a self-asserted pass can't lie its way green. Relationships grep can't see \u2014 the wicked-estate code graph + injected bus/dispatch/capability/archetype edges power blast-radius & lineage. Plus deterministic multi-file refactor (wicked-patch), cross-session memory + knowledge (the mem domain over wicked-estate), real multi-model second opinions (jam:council), portable expertise as on-demand skill-refs, and evidence-gated testing (the in-catalog qe domain). It reads the shape of your work to apply the right rigor \u2014 steering, not a pipeline \u2014 then gets out of the way. The compiler stamps a self-contained evidence gate into any repo that runs with no wicked-garden installed. Don't fight the harness; fill its gaps. The evidence gate requires wicked-vault, a self-contained infra peer wicked-garden installs directly; wicked-bus is an opt-in layer \u2014 install what you'll use, the toolkit works without the rest.",
|
|
5
5
|
"wicked_vault_version": "^0.5.0",
|
|
6
6
|
"wicked_ledger_version": "^0.4.0",
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [12.37.2] — 2026-09-15
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
- **Hotfix (frontmatter-drop class; ship-blocker for 12.37.1 → cut as 12.37.2): three translated skills had a dropped `tool-capabilities:` key that left its value line(s) ORPHANED in the frontmatter (fixall L6-hotfix).** `skills/data-engineer/SKILL.md` (batch B8) left ` - data-query` after the key was removed, which made the frontmatter INVALID YAML (`expected <block end>, but found '<block sequence start>'`) — `yaml.safe_load` refused it, blocking the ENTIRE skills publish (rig can't republish → `baseSkillPolicy=require` refuses every launch). Two more of the same class were absorbed into a `|` block description (valid YAML, corrupt content, so `yaml.safe_load` did not catch them): `skills/agentic-safety-reviewer/SKILL.md` (B8, ` - security-scanning`) and `skills/platform-security-engineer/SKILL.md` (B6, ` - security-scanning` + ` - version-control`). All orphaned value lines are deleted (the `tool-capabilities` key was intentionally dropped in those batches; its values go with it). **Systemic guard:** `scripts/ci/validate.py` now runs a strict STRUCTURAL frontmatter check on every SKILL.md (stdlib only — garden CI runs the validate/test legs with a bare interpreter, no PyYAML, so it cannot import the publish's `yaml.safe_load`; the check reproduces the one failure mode that matters) and FAILS on an orphaned value line under a scalar key (the syntax break that stopped 12.37.1's publish) AND on a bare-token list value absorbed into a `|` block scalar (the silent subclass); `tests/test_validate_frontmatter.py` carries the adversarial rows (an orphan after a quoted scalar, an orphan absorbed into a `|` block, a nested-map orphan, and missing frontmatter all fail; clean frontmatter, a `|` block, `mandates:` lists, and legitimate prose bullets pass) plus a live-tree assertion. Root cause: the cross-CLI batches' frontmatter rewriter dropped a key's line without its indented value lines, and garden CI read frontmatter with a lenient regex, not a strict YAML parse — so it slipped through fifteen batches. A full repo sweep of all 140 SKILL.md confirms these three were the only affected files.
|
|
9
|
+
- **Wave-2 catalog batch B9 (DES-L6 B11): the `jam` and `persona` domains — two routers, `jam-brainstorm-facilitator` / `jam-council`, three refs — are cross-CLI, and the `persona-agent` worker is RETIRED into `persona/refs/as.md` (fixall L6-B9; D-21 — BC-37 / BC-39).** The routers carry the closed key set with `metadata.role: router` (`jam` phases `clarify,design`; `persona` phases `*`): `jam`'s `brainstorm` and `council` sub-actions hand off to the two worker skills through Hand-off paragraphs carrying the exact asks (the routing table says "Hand-off →", the Workers section drops "forked", council seats are "separate-worker seats"); `persona`'s Source Priority names "the harness's plugin cache" instead of a `.claude/plugins` path. The two jam workers are `role: worker` (Claude hint keys, fork sentences and the pre-v12.25 `Task(subagent_type=…)` compat tails dropped — reached by name through a Hand-off; "dispatched by" → "handed off by" in their descriptions); the facilitator's `TaskCreate(` / `TaskUpdate(` session tracking reads as "track the session in the harness's task list where it has one, else your working notes" with the subject, metadata and appends named, its three `Skill(skill="wicked-garden-mem", …)` recall/store calls are Hand-off paragraphs and its Step 1b names the `wicked-garden-search` skill; the council's "subagent tier" is "the separate-worker tier" (its seat-independence Hand-off was already cross-CLI) and its outcome store is a Hand-off paragraph. `persona-agent` (a 122-line fork worker whose whole job was to run the profile the `as` action assembled) is retired: `persona/refs/as.md` Step 5 "Embody the persona" carries the profile as a ```markdown template and a new "Embodying the persona" section carries the worker's behavioral guidelines, archetype patterns, response format and task-type adaptations verbatim (harness-neutral tool wording); `skills/persona-agent/` is deleted, `components.json` regenerated (`fork_skills` 73 → 72, skills 144 → 143), `docs/domains.md` says so. `jam/refs/revisit.md`'s two mem calls are Hand-off paragraphs; `council-verdict.md` says "worker returns". `tests/test_skill_naming.py` loses the ">= 3 skills keep a `subagent_type` compat key" floor — the batches drop the key on purpose (BC-37), so the drop is not silent; the well-formedness test still runs over the two remaining declarers (`mem-capture`, `mem-ingest`) until B10 retires them. Kept on purpose: the `{topic-slug}` / `{persona}` template placeholders, description trigger phrases → the B18 colon-form token. `tests/cross_cli_baseline.json` shrinks by exactly this batch (20 pairs across 7 files → 119; 0 stale; nothing added — the deleted `persona-agent/SKILL.md` entry goes with the file). BM-style check for the wave-2 P2b/BM re-run: a non-claude seat receives both routers and the two jam workers in `skillsSnapshotHanded` with 0 `seatConstraint`, a jam `brainstorm` unit on that seat hands off to `wicked-garden-jam-brainstorm-facilitator` by name, and a persona `as` unit embodies the persona inline with no `Skill(` in its output.
|
|
10
|
+
- **Wave-2 catalog batch B10 (DES-L6 B12): the fold/retire batch — `integration-discovery` RETIRED, `runtime-exec` folded into `core/refs/runtime.md`, `engineering-conformance-reviewer` folded into `engineering/refs/conformance.md`, and `smaht` (+ `discovery` / `intent` / `propose-skills` / `refs/briefing.md`), `mem-capture` and `mem-ingest` are cross-CLI (fixall L6-B10; D-21 — BC-37 / BC-39).** `wicked-garden-integration-discovery` (a `user-invocable: false`, `status: experimental` capability router nothing dispatched — the `integration-discovery` strings in `_domain_store.py` / `_session.py` / `domain_adapter.py` name the routing mechanism, not the skill) is deleted with its four refs. `wicked-garden-runtime-exec`'s body moves verbatim into `skills/core/refs/runtime.md` minus its frontmatter, H1 and the shared launcher paragraph `core/SKILL.md` already carries, and the router's Runtime section points at it; `wicked-garden-engineering-conformance-reviewer`'s body moves verbatim into `skills/engineering/refs/conformance.md`, a pointer lands at the end of the router's Knowledge modules section, `scripts/platform/guard_pipeline.py` stops telling the operator to invoke a skill that no longer exists, and `docs/outgov-per-turn.md` names the ref. The `smaht` router carries the closed key set with `metadata.role: router` (phases `*`; description 1042 → under 1024 chars — the alias line drops and `wicked-garden:search` reads as the `wicked-garden-search` skill), loses its fork sentence and the dispatch-fallback sentence, and its Quick Reference's two `Skill(skill="wicked-garden-mem", …)` calls become one Hand-off paragraph (the symbol-lookup comment now says "through the estate read-only shim", matching the grounding doctrine that landed in 12.37.1); `discovery` / `intent` / `propose-skills` are `role: module` (discovery's "Fork-worker dispatches (`Skill(skill=…)`, or the legacy `subagent_type=…` compat form)" detection bullets describe Hand-off paragraphs and worker names, propose-skills reads "the harness's session transcripts"), and `refs/briefing.md`'s fallback memory call is a Hand-off paragraph. `mem-capture` and `mem-ingest` get the closed key set with `metadata.role: worker` — bodies untouched. **Scope deviation from DES B12, disclosed:** the DES says those two workers and `smaht` RETIRE "— `mem/SKILL.md` untouched", but both clauses cannot hold — the L4-owned `skills/mem/SKILL.md` dispatches `wicked-garden-mem-ingest` and `wicked-garden-mem-capture` by name at four sites (and `mem/refs/scopes.md` at one), so deleting them dangles five identifiers in files this lane does not own and `unresolved-skill-name` fails loud on exactly that (B9's guard); `wicked-garden-smaht-intent` is a live user-override path in `hooks/scripts/prompt_submit.py` and `scripts/_session.py`, `core/SKILL.md` lists smaht in two routing tables, and `docs/domains.md` counts it among the 9 domains. Both are translated here and their retirement is owed as a follow-up that carries the L4 router edit (mem) and the hook/docs changes (smaht) in the same PR. `tests/cross_cli_baseline.json` shrinks by exactly this batch (26 pairs across 10 files → 93; 0 stale; nothing added — the deleted files' entries go with them); `.claude-plugin/components.json` regenerated (`fork_skills` 72 → 69 — `engineering-conformance-reviewer` and `integration-discovery` leave with their deleted files and `smaht` leaves the set because it is now `metadata.role: router` instead of a `context: fork`-inferred worker; `runtime-exec` was already a module); `scripts/wg/_relevance_bulkadd.py` drops the two rows for the deleted dirs and the `portability_rules.garden.json` corpus entry pinned to the retired `runtime-exec` file is re-pointed at its new home, so no corpus row names a deleted file. BM-style check for the wave-2 P2b/BM re-run: a non-claude seat receives `wicked-garden-smaht`, `wicked-garden-mem-capture` and `wicked-garden-mem-ingest` in `skillsSnapshotHanded` with 0 `seatConstraint` and none of the three retired names, and a smaht `briefing` unit on that seat hands off to `wicked-garden-mem` by name with no `Skill(` in its output.
|
|
11
|
+
- **Wave-2 catalog batch B11 (DES-L6 B13): the `qe` router and its refs go cross-CLI (fixall L6-B11; D-21 — BC-37 / BC-39; C7).** The router carries the closed key set with `metadata.role: router` (phases `*`; description trimmed 1339 → 1012 chars), its "Fork workers (dispatch with the Skill tool)" section is "Workers", and the dispatch-guard names the hand-off instead of "the Skill call". Nine dispatch fences across `accept` (writer / executor / reviewer), `author`, `execute`, `insight`, `plan`, `review` become Hand-off paragraphs that keep each worker's full arg brief verbatim in a ```markdown block; the "Every id … invoke it with the Skill tool" intros read "reach it by name through a Hand-off", the shared "Dispatch uses the Skill tool on Claude Code …" fallback sentences are dropped, the `Skill(skill="wicked-garden-mem")` / `-search` recalls in `accept` / `campaign` are Hand-off paragraphs or plain skill references, and the "one `Skill(...)` call each" dispatch prose in `execute` / `plan` / `campaign` reads "one hand-off". Two arg-body tool nouns ("Read the scenario via the Read tool", "Use the Read tool to open") say "with your file reader"; the reviewer-isolation enforcement tables in `accept` / `campaign-grading` are keyed by capability ("a host that enforces `allowed-tools`") instead of naming "Claude Code"; and `integration.md`'s retained-for-compat `subagent_type` wire-field note is marked historical. **C7 (DES B13):** the router's preflight is scoped to writing actions (author / execute / intake / accept) — read-only actions (plan / insight / review) never force setup — and `plan.md`'s preflight reads "config is optional for planning; never run setup from plan". Every `.wicked-testing/` dual-read line (router :36/:68/:69, `accept` :103/:104/:124, `campaign` :250) is marked `<!-- historical -->` (the functional bash lines via a trailing `# <!-- historical -->` comment so the illustrative command still parses). No lint rule or regex changed. `tests/cross_cli_baseline.json` shrinks by exactly this batch (30 pairs across 10 files → 63; 0 stale; nothing added); `components.json` unchanged (the qe router was already a router; the 40 `qe-*` workers are B14–B17). BM-style check for the wave-2 P2b/BM re-run: a non-claude seat receives `wicked-garden-qe` in `skillsSnapshotHanded` with 0 `seatConstraint`, and a qe `accept` unit on that seat hands off to `wicked-garden-qe-acceptance-test-{writer,executor,reviewer}` by name (no `Skill(` in its output).
|
|
12
|
+
- **Wave-2 catalog batch B14 (DES-L6 B14; first of the 40 `qe-*` workers): 10 qe specialist workers (`qe-a11y-test-engineer`, `qe-acceptance-test-{executor,reviewer,writer}`, `qe-ai-feature-test-engineer`, `qe-chaos-test-engineer`, `qe-code-analyzer`, `qe-compliance-test-engineer`, `qe-contract-testing-engineer`, `qe-coverage-archaeologist`) go cross-CLI (fixall L6-B14; D-21 — BC-37 / BC-39).** Each drops its Claude-only frontmatter (`context: fork`, `model`, `effort`, `max-turns`, `allowed-tools`, `phase_relevance`, `archetype_relevance`) for the closed key set with `metadata.role: worker`, and the "This skill is designed to run as an isolated worker …" fork sentence is removed. Four over-long descriptions are trimmed under 1024 (a11y 1160 → 772, ai-feature 1593 → 991, chaos 1046 → 508, compliance 1289 → 807 — the illustrative `<example>` blocks removed, ai-feature's NOT/Cross-ref lists condensed). The three acceptance workers' dispatch is translated: `qe-acceptance-test-executor` and `-writer`'s `Skill(skill="wicked-garden-mem", …)` recalls are Hand-off paragraphs, the executor's "Use Bash tool" / "Use Read tool" evidence rows say "your shell" / "your file reader", and the reviewer's enforcement note is keyed by capability ("a host that enforces `allowed-tools`") instead of naming "Claude Code". The `qe-chaos-test-engineer` and `qe-compliance-test-engineer` `VERDICT={PASS|FAIL} REVIEWER=… RUN_ID=…` output footers become the D-9 grammar on separate lines (`VERDICT: PASS|FAIL` / `REVIEWER: …` / `RUN_ID: …`) and leave `verdict_spelling.legacy_footer_files` (7 → 5); the verdict-spelling test fixture + corpus entry re-point from chaos to `qe-visual-regression-engineer` (a survivor through B17). B14 also converted the LAST `Skill(skill="wicked-garden-…")` dispatch call-form in the catalog, so `test_reference_extraction_is_not_vacuous`'s Skill-ref non-vacuity assert inverts to the zero-invariant (a reappearing `Skill(` ref is now a regression; the launcher-count guards keep the test non-vacuous) — the B9 review's N2 item, retired by the batch that made it come due. `tests/cross_cli_baseline.json` shrinks by exactly this batch (21 pairs across 10 files → 42; 0 stale; nothing added); `components.json` unchanged (all 10 were already `context: fork`-inferred workers). BM-style check for the wave-2 P2b/BM re-run: a non-claude seat receives the 10 workers in `skillsSnapshotHanded` with 0 `seatConstraint`; a qe `accept` unit on that seat hands off to `wicked-garden-qe-acceptance-test-{writer,executor,reviewer}` by name (no `Skill(` in its output) and a chaos/compliance run writes `VERDICT: PASS|FAIL` on its own line.
|
|
13
|
+
- **Wave-2 catalog batch B15 (DES-L6 B14–B17; second of the 40 `qe-*` workers): 10 qe specialist workers (`qe-data-quality-tester`, `qe-e2e-orchestrator`, `qe-exploratory-tester`, `qe-flaky-test-hunter`, `qe-fuzz-property-engineer`, `qe-iac-test-engineer`, `qe-incident-to-scenario-synthesizer`, `qe-integration-test-engineer`, `qe-load-performance-engineer`, `qe-localization-test-engineer`) go cross-CLI (fixall L6-B15; D-21 — BC-37 / BC-39).** Each drops its Claude-only frontmatter for the closed key set with `metadata.role: worker` and loses the "This skill is designed to run as an isolated worker …" fork sentence; `qe-incident-to-scenario-synthesizer`'s over-long description (1165 → 643) drops its illustrative `<example>` block. The `qe-flaky-test-hunter` and `qe-iac-test-engineer` `VERDICT={PASS|FAIL} REVIEWER=… RUN_ID=…` output footers become the D-9 grammar on separate lines (`VERDICT: PASS|FAIL` / `REVIEWER:` / `RUN_ID:`), and `qe-incident-to-scenario-synthesizer`'s concrete `VERDICT=PASS …` footer becomes `VERDICT: PASS` + separate lines; all three leave `verdict_spelling.legacy_footer_files` (5 → 2, leaving `qe-mutation-test-engineer` (B16) and `qe-visual-regression-engineer` (B17, the verdict-spelling test fixture target)). No dispatch/prose in these 10 (a full ungrouped sweep confirmed it); no test-fixture move (the fixture points at visual-regression, which stays legacy). `tests/cross_cli_baseline.json` shrinks by exactly this batch (11 pairs across 10 files → 31; 0 stale; nothing added); `components.json` unchanged. BM-style check for the wave-2 P2b/BM re-run: a non-claude seat receives the 10 workers in `skillsSnapshotHanded` with 0 `seatConstraint`, and a flaky/iac/incident run writes `VERDICT: …` on its own line.
|
|
14
|
+
|
|
5
15
|
## [12.37.1] — 2026-09-14
|
|
6
16
|
|
|
7
17
|
### Changed
|
|
@@ -908,6 +918,7 @@ through `v9.2.18`. Major themes across that span:
|
|
|
908
918
|
|
|
909
919
|
For each of those releases, see the corresponding tag in git history.
|
|
910
920
|
|
|
911
|
-
[Unreleased]: https://github.com/mikeparcewski/wicked-garden/compare/v12.37.
|
|
921
|
+
[Unreleased]: https://github.com/mikeparcewski/wicked-garden/compare/v12.37.2...HEAD
|
|
922
|
+
[12.37.2]: https://github.com/mikeparcewski/wicked-garden/compare/v12.37.1...v12.37.2
|
|
912
923
|
[12.37.1]: https://github.com/mikeparcewski/wicked-garden/compare/v12.37.0...v12.37.1
|
|
913
924
|
[12.37.0]: https://github.com/mikeparcewski/wicked-garden/compare/v12.36.0...v12.37.0
|
package/docs/domains.md
CHANGED
|
@@ -159,7 +159,7 @@ They do not overlap; pick by target:
|
|
|
159
159
|
| `define` | Create or update a custom persona |
|
|
160
160
|
| `list` | List all available personas (Methodology vs Generic tiers) |
|
|
161
161
|
|
|
162
|
-
**
|
|
162
|
+
**Worker**: none — the former `wicked-garden-persona-agent` worker is retired into `refs/as.md` (wave-2 B9): the `as` action builds the profile from the registry at runtime and embodies it inline. `define` runs inline from `refs/define.md`; the no-op `persona:submit` stub was deleted.
|
|
163
163
|
|
|
164
164
|
## smaht — Context Assembly
|
|
165
165
|
|
package/docs/outgov-per-turn.md
CHANGED
|
@@ -136,7 +136,7 @@ Hermetic tests — no live estate needed, fixture rules dirs only:
|
|
|
136
136
|
- `hooks/scripts/stop.py` — `_check_outgov_compliance` (per-turn advisory)
|
|
137
137
|
- `scripts/platform/guard_pipeline.py` — Check 6 (`check_outgov_pattern`),
|
|
138
138
|
`compute_rules_content_hash`, `write_rules_provenance`, the `hash` CLI
|
|
139
|
-
- `skills/engineering
|
|
139
|
+
- `skills/engineering/refs/conformance.md` — the agent-half rubric that
|
|
140
140
|
evaluates Check 6's surfaced rules semantically
|
|
141
141
|
- wicked-core `crates/wicked-governance` — the graph side: `rules ingest`,
|
|
142
142
|
`rules fanout` (the manifest + store split), `rules.recall`'s Rust twin
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wicked-garden",
|
|
3
|
-
"version": "12.37.
|
|
3
|
+
"version": "12.37.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Curated toolkit for what AI coding agents can't do alone: evidence-gated work, codegraph relationships, deterministic multi-file refactor, multi-model second opinions, and cross-session memory. Installs as a Claude Code plugin.",
|
|
6
6
|
"keywords": [
|
|
@@ -1214,7 +1214,7 @@ def check_outgov_pattern(
|
|
|
1214
1214
|
rule_id=str(rid),
|
|
1215
1215
|
severity=sev,
|
|
1216
1216
|
message=f"[{rid}] {statement} — evaluate this session's output for conformance "
|
|
1217
|
-
f"(
|
|
1217
|
+
f"(evaluate with the wicked-garden-engineering skill's refs/conformance.md rubric)",
|
|
1218
1218
|
))
|
|
1219
1219
|
|
|
1220
1220
|
result.duration_ms = int((time.monotonic() - t0) * 1000)
|
package/skills/core/SKILL.md
CHANGED
|
@@ -30,6 +30,8 @@ documents). Everything runs in the parent context.
|
|
|
30
30
|
Script-backed steps use the `wicked-garden` launcher: `wicked-garden run <plugin-root-relative path, e.g. scripts/…> [args]`. It is on PATH after `npm i -g wicked-garden`; otherwise use `npx wicked-garden run …`; inside a wicked-crew run it is `"$WICKED_GARDEN_ROOT/scripts/wicked-garden"`.
|
|
31
31
|
If none of these is available, or Python 3 is missing, skip the script-backed step, say so, and follow the manual alternative where one is given next to it — never invent the script's output.
|
|
32
32
|
Relative paths in this skill are relative to the directory that contains this SKILL.md.
|
|
33
|
+
Runtime resolution in depth — the Python/Node detection ladders, usage patterns and troubleshooting —
|
|
34
|
+
is `refs/runtime.md`.
|
|
33
35
|
|
|
34
36
|
## Action router
|
|
35
37
|
|
|
@@ -1,22 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
phases: "*"
|
|
9
|
-
archetypes: "*"
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# Runtime Execution Skill
|
|
13
|
-
|
|
14
|
-
Execute Python and Node scripts using the best available package manager.
|
|
15
|
-
|
|
16
|
-
## Runtime
|
|
17
|
-
Script-backed steps use the `wicked-garden` launcher: `wicked-garden run <plugin-root-relative path, e.g. scripts/…> [args]`. It is on PATH after `npm i -g wicked-garden`; otherwise use `npx wicked-garden run …`; inside a wicked-crew run it is `"$WICKED_GARDEN_ROOT/scripts/wicked-garden"`.
|
|
18
|
-
If none of these is available, or Python 3 is missing, skip the script-backed step, say so, and follow the manual alternative where one is given next to it — never invent the script's output.
|
|
19
|
-
Relative paths in this skill are relative to the directory that contains this SKILL.md.
|
|
1
|
+
# Runtime execution — Python and Node
|
|
2
|
+
|
|
3
|
+
Reference for the `wicked-garden-core` skill (the former runtime-exec module, folded here in
|
|
4
|
+
wave-2 B10). Execute Python and Node scripts using the best available package manager, with automatic
|
|
5
|
+
package-manager detection — other skills and agents come here when a script needs execution with correct
|
|
6
|
+
runtime resolution. The launcher paragraph in `SKILL.md`'s Runtime section is the short form; this ref is the
|
|
7
|
+
detection ladder, the usage patterns and the troubleshooting.
|
|
20
8
|
|
|
21
9
|
## Recommended: use the `wicked-garden` launcher
|
|
22
10
|
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: wicked-garden-data-engineer
|
|
3
3
|
description: "ETL pipeline design, data quality assessment, schema validation, and performance optimization as a delegated worker skill. Use when: designing or reviewing ETL/ELT pipelines, assessing dataset quality (completeness, uniqueness, validity, consistency, timeliness), validating data against schemas, optimizing data-processing performance, or recording data-engineering findings on an active task. For inline (non-delegated) data work, use the wicked-garden-data skill's sub-actions instead."
|
|
4
|
-
- data-query
|
|
5
4
|
metadata:
|
|
6
5
|
role: worker
|
|
7
6
|
---
|
|
@@ -147,6 +147,9 @@ Audit (coverage metrics) and sync (stale-docs detection) modes live in the
|
|
|
147
147
|
[docs](docs/SKILL.md) · [large-scale-migration](large-scale-migration/SKILL.md) ·
|
|
148
148
|
[patch](patch/SKILL.md) · [unit-test-quality](unit-test-quality/SKILL.md)
|
|
149
149
|
|
|
150
|
+
- [refs/conformance.md](refs/conformance.md) — pattern-conformance review: load the applicable Pattern rules,
|
|
151
|
+
judge the artifact semantically per rule, emit `CONFORMANT` / `DRIFT` / `VIOLATION` (report only, never gate).
|
|
152
|
+
|
|
150
153
|
## Workers
|
|
151
154
|
|
|
152
155
|
| Skill | Hand off for |
|
package/skills/{engineering-conformance-reviewer/SKILL.md → engineering/refs/conformance.md}
RENAMED
|
@@ -1,30 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
NOT a replacement for the full `engineering` review skill — focuses only on
|
|
14
|
-
conformance to stored Pattern rules; architecture and code-quality checks live
|
|
15
|
-
in the `engineering` skill.
|
|
16
|
-
|
|
17
|
-
Semantic evaluation reuses `wicked-garden-qe-semantic-reviewer` as the
|
|
18
|
-
designated agent-half evaluator (per garden#983 spec). This skill is the
|
|
19
|
-
orchestrating wrapper that loads applicable Pattern rules and delegates the
|
|
20
|
-
per-rule semantic judgment to qe-semantic-reviewer.
|
|
21
|
-
metadata:
|
|
22
|
-
role: worker
|
|
23
|
-
phases: "build,review"
|
|
24
|
-
archetypes: "build,review,modernize"
|
|
25
|
-
---
|
|
26
|
-
|
|
27
|
-
# Conformance Reviewer — Pattern-Conformance Agent-Half
|
|
1
|
+
# Conformance review — the pattern-conformance agent-half
|
|
2
|
+
|
|
3
|
+
Reference for the `wicked-garden-engineering` skill (the former engineering-conformance-reviewer worker,
|
|
4
|
+
folded here in wave-2 B10). Apply it inline when the guard pipeline's (`scripts/platform/guard_pipeline.py`) `outgov_pattern` check surfaces
|
|
5
|
+
Pattern rules at session close, or when an engineering review runs with `WICKED_OUTGOV_RULES_DIR` populated.
|
|
6
|
+
|
|
7
|
+
**Scope.** This is NOT a replacement for the full `wicked-garden-engineering` review — it covers only
|
|
8
|
+
conformance to stored Pattern rules; architecture and code-quality checks live in the engineering skill itself.
|
|
9
|
+
|
|
10
|
+
**Delegation.** Semantic evaluation reuses `wicked-garden-qe-semantic-reviewer` as the designated agent-half
|
|
11
|
+
evaluator (garden#983): this rubric is the orchestrating wrapper that loads the applicable Pattern rules and
|
|
12
|
+
delegates the per-rule semantic judgment to that skill.
|
|
28
13
|
|
|
29
14
|
You are the **agent-half** of the output-governance pattern-conformance validator.
|
|
30
15
|
The deterministic half has already run: it read Pattern-type rules from the estate
|
package/skills/jam/SKILL.md
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: wicked-garden-jam
|
|
3
|
-
user-invocable: true
|
|
4
3
|
description: |
|
|
5
4
|
Orchestrates AI-powered brainstorming sessions with dynamic focus groups.
|
|
6
5
|
quick sessions are ephemeral (no storage). brainstorm and council sessions
|
|
@@ -10,8 +9,10 @@ description: |
|
|
|
10
9
|
"jam quick <idea>", "jam brainstorm <topic>", "jam council <topic> with
|
|
11
10
|
options A/B/C", "multi-model evaluation", "council verdict",
|
|
12
11
|
"jam revisit <decision>", "how did that decision work out".
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
metadata:
|
|
13
|
+
role: router
|
|
14
|
+
phases: "clarify,design"
|
|
15
|
+
archetypes: "*"
|
|
15
16
|
---
|
|
16
17
|
|
|
17
18
|
# Brainstorming Skill
|
|
@@ -30,8 +31,8 @@ Relative paths in this skill are relative to the directory that contains this SK
|
|
|
30
31
|
| Sub-action | When | How it runs |
|
|
31
32
|
|------------|------|-------------|
|
|
32
33
|
| `quick` | Gut-check, rapid exploration (~60s) | Inline — apply `refs/quick.md` directly |
|
|
33
|
-
| `brainstorm` | Important decisions, complex problems |
|
|
34
|
-
| `council` | Defined options needing a rigid verdict |
|
|
34
|
+
| `brainstorm` | Important decisions, complex problems | Hand-off → `wicked-garden-jam-brainstorm-facilitator` |
|
|
35
|
+
| `council` | Defined options needing a rigid verdict | Hand-off → `wicked-garden-jam-council` |
|
|
35
36
|
| `revisit` | Record the outcome of a past decision | Inline — follow `refs/revisit.md` |
|
|
36
37
|
|
|
37
38
|
> **Progression**: `quick` (60s gut-check, ephemeral) → `brainstorm` (full
|
|
@@ -84,15 +85,10 @@ stored via the wicked-garden-mem skill for organizational memory.
|
|
|
84
85
|
- **fast** (`--converge fast`): After each round, assess whether there is
|
|
85
86
|
enough signal to synthesize; skip remaining rounds when personas converge.
|
|
86
87
|
|
|
87
|
-
|
|
88
|
-
|
|
88
|
+
Hand off to the facilitator worker skill (it owns the convergence checks,
|
|
89
|
+
task tracking, transcript storage, and bus events):
|
|
89
90
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
```
|
|
93
|
-
Skill(skill="wicked-garden-jam-brainstorm-facilitator",
|
|
94
|
-
args="Run a full brainstorm session on: {topic}. Options: {personas}, {rounds}, convergence_mode={converge|'normal'}.")
|
|
95
|
-
```
|
|
91
|
+
**Hand-off** — open the `wicked-garden-jam-brainstorm-facilitator` skill with "Run a full brainstorm session on: {topic}. Options: {personas}, {rounds}, convergence_mode={converge|'normal'}." as the argument; on Claude Code this is the Skill tool, on any other seat open the named skill from your catalog and carry it out inline, then continue here.
|
|
96
92
|
|
|
97
93
|
## Sub-action: council
|
|
98
94
|
|
|
@@ -104,21 +100,18 @@ see `scripts/jam/agentic_cli_registry.py`) — to get genuinely independent
|
|
|
104
100
|
model perspectives. Installed CLIs are detected AND usability-probed via
|
|
105
101
|
`wicked-garden run scripts/jam/detect_clis.py --probe` (auth-revoked / unconfigured /
|
|
106
102
|
daemon-down CLIs are excluded). When fewer than 2 usable external CLIs are
|
|
107
|
-
present, council seats are filled with
|
|
103
|
+
present, council seats are filled with separate-worker seats so deliberation
|
|
108
104
|
always happens. Unlike brainstorm (free-form creative exploration), council is
|
|
109
105
|
a **rigid evaluation tool** for when you have defined options and need a
|
|
110
106
|
verdict.
|
|
111
107
|
|
|
112
108
|
Natural workflow: `brainstorm → identify candidates → council → decide`
|
|
113
109
|
|
|
114
|
-
|
|
110
|
+
Hand off to the council worker skill:
|
|
115
111
|
|
|
116
|
-
|
|
117
|
-
Skill(skill="wicked-garden-jam-council",
|
|
118
|
-
args="Run a council evaluation on: {topic}. Options: {options}. Criteria: {criteria}.")
|
|
119
|
-
```
|
|
112
|
+
**Hand-off** — open the `wicked-garden-jam-council` skill with "Run a council evaluation on: {topic}. Options: {options}. Criteria: {criteria}." as the argument; on Claude Code this is the Skill tool, on any other seat open the named skill from your catalog and carry it out inline, then continue here.
|
|
120
113
|
|
|
121
|
-
**After the
|
|
114
|
+
**After the council returns**: read
|
|
122
115
|
`refs/council-verdict.md` — it holds the
|
|
123
116
|
caller-side heuristics for acting on the verdict (when to proceed, when to
|
|
124
117
|
surface raw votes and pause for human adjudication, hard-gate archetype rules)
|
|
@@ -130,7 +123,7 @@ and the `raw_votes` output envelope contract
|
|
|
130
123
|
**Args**: `<topic or decision keyword>`
|
|
131
124
|
|
|
132
125
|
Revisit a past brainstorm decision to record whether it was validated,
|
|
133
|
-
invalidated, or modified. Light workflow — run it inline, no
|
|
126
|
+
invalidated, or modified. Light workflow — run it inline, no hand-off:
|
|
134
127
|
|
|
135
128
|
1. Read `refs/revisit.md` — the 5-step
|
|
136
129
|
workflow: recall the decision via the wicked-garden-mem skill, display
|
|
@@ -139,10 +132,10 @@ invalidated, or modified. Light workflow — run it inline, no fork:
|
|
|
139
132
|
memory layer is absent.
|
|
140
133
|
2. Follow it step by step, waiting for the user's outcome answer in step 3.
|
|
141
134
|
|
|
142
|
-
## Workers
|
|
135
|
+
## Workers
|
|
143
136
|
|
|
144
137
|
- `skills/jam-brainstorm-facilitator/SKILL.md` — multi-round, evidence gathering, transcript storage, decision record
|
|
145
|
-
- `skills/jam-council/SKILL.md` — registry-driven multi-model council with isolation-enforced parallel
|
|
138
|
+
- `skills/jam-council/SKILL.md` — registry-driven multi-model council with isolation-enforced parallel seats
|
|
146
139
|
|
|
147
140
|
(`jam quick` runs inline via `refs/quick.md` — the former quick-facilitator
|
|
148
141
|
agent was retired; the ref is the sole, up-to-date rubric.)
|
|
@@ -4,7 +4,7 @@ archetype_relevance: ["*"]
|
|
|
4
4
|
---
|
|
5
5
|
# Acting on the Council Verdict (caller side)
|
|
6
6
|
|
|
7
|
-
This ref guides the PARENT after the `wicked-garden-jam-council`
|
|
7
|
+
This ref guides the PARENT after the `wicked-garden-jam-council` worker returns.
|
|
8
8
|
It is caller-side policy — the council worker produces the verdict; the caller
|
|
9
9
|
decides what to do with it.
|
|
10
10
|
|
|
@@ -5,20 +5,13 @@ archetype_relevance: ["*"]
|
|
|
5
5
|
# jam revisit — Decision Outcome Workflow
|
|
6
6
|
|
|
7
7
|
Revisit a past brainstorm decision to record whether it was validated,
|
|
8
|
-
invalidated, or modified. Light workflow — run it inline, no
|
|
8
|
+
invalidated, or modified. Light workflow — run it inline, no hand-off needed.
|
|
9
9
|
|
|
10
10
|
## Instructions
|
|
11
11
|
|
|
12
12
|
### 1. Recall Past Decision
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
```
|
|
17
|
-
Skill(
|
|
18
|
-
skill="wicked-garden-mem",
|
|
19
|
-
args="recall \"jam decision related to: {topic}\""
|
|
20
|
-
)
|
|
21
|
-
```
|
|
14
|
+
**Hand-off** — open the `wicked-garden-mem` skill and run its `recall` action with `jam decision related to: {topic}` as the query; on Claude Code this is the Skill tool, on any other seat open the named skill from your catalog and carry it out inline, then continue here.
|
|
22
15
|
|
|
23
16
|
If no matching decision found, inform the user and suggest running the jam
|
|
24
17
|
skill's `brainstorm` sub-action first.
|
|
@@ -52,13 +45,7 @@ How did this decision work out?
|
|
|
52
45
|
|
|
53
46
|
### 4. Record Outcome
|
|
54
47
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
Dispatch uses the Skill tool on Claude Code (a fresh forked context). On any other harness, open the named skill's `SKILL.md` from your skills catalog and carry out its instructions inline with the given args, then continue here.
|
|
58
|
-
|
|
59
|
-
```
|
|
60
|
-
Skill(skill="wicked-garden-mem", args="store \"Outcome: {topic}\nOriginal decision: {chosen}\nResult: {validated/invalidated/modified}\nReason: {user's explanation}\nLessons: {what we learned}\" (kind=fact, about=[jam, outcome, {topic-keywords}])")
|
|
61
|
-
```
|
|
48
|
+
**Hand-off** — open the `wicked-garden-mem` skill and run its `store` action with the record `Outcome: {topic} / Original decision: {chosen} / Result: {validated/invalidated/modified} / Reason: {user's explanation} / Lessons: {what we learned}` (kind=fact, about=[jam, outcome, {topic-keywords}]); on Claude Code this is the Skill tool, on any other seat open the named skill from your catalog and carry it out inline, then continue here.
|
|
62
49
|
|
|
63
50
|
### 5. Report
|
|
64
51
|
|
|
@@ -1,25 +1,18 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: wicked-garden-jam-brainstorm-facilitator
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
model: sonnet
|
|
7
|
-
effort: medium
|
|
8
|
-
max-turns: 10
|
|
9
|
-
allowed-tools: Read, Grep, Glob, Bash
|
|
3
|
+
description: "Role-plays as focus group personas and synthesizes brainstorming discussions. Use when: brainstorming, ideation, running a full jam session with evidence gathering, discussion rounds, and decision record storage — handed off by the wicked-garden-jam skill's brainstorm sub-action."
|
|
4
|
+
metadata:
|
|
5
|
+
role: worker
|
|
10
6
|
---
|
|
11
7
|
|
|
12
8
|
# Facilitator
|
|
13
9
|
|
|
14
|
-
This skill is designed to run as an isolated worker; when your harness cannot fork, run it inline and keep its output separate from the caller's.
|
|
15
|
-
|
|
16
10
|
You orchestrate brainstorming sessions with dynamic focus groups.
|
|
17
11
|
|
|
18
12
|
## Runtime
|
|
19
13
|
Script-backed steps use the `wicked-garden` launcher: `wicked-garden run <plugin-root-relative path, e.g. scripts/…> [args]`. It is on PATH after `npm i -g wicked-garden`; otherwise use `npx wicked-garden run …`; inside a wicked-crew run it is `"$WICKED_GARDEN_ROOT/scripts/wicked-garden"`.
|
|
20
14
|
If none of these is available, or Python 3 is missing, skip the script-backed step, say so, and follow the manual alternative where one is given next to it — never invent the script's output.
|
|
21
15
|
Relative paths in this skill are relative to the directory that contains this SKILL.md.
|
|
22
|
-
Dispatch uses the Skill tool on Claude Code (a fresh forked context). On any other harness, open the named skill's `SKILL.md` from your skills catalog and carry out its instructions inline with the given args, then continue here.
|
|
23
16
|
|
|
24
17
|
## Your Role
|
|
25
18
|
|
|
@@ -31,7 +24,7 @@ Guide structured brainstorming through:
|
|
|
31
24
|
|
|
32
25
|
## Inputs
|
|
33
26
|
|
|
34
|
-
The
|
|
27
|
+
The caller gives you: `topic` (required), and optionally `personas`,
|
|
35
28
|
`rounds` (default 2-3), and `convergence_mode` (`normal` | `fast`, default
|
|
36
29
|
`normal`).
|
|
37
30
|
|
|
@@ -46,16 +39,15 @@ The dispatcher gives you: `topic` (required), and optionally `personas`,
|
|
|
46
39
|
do not run extra rounds just because they were planned. Maximum: 1 round
|
|
47
40
|
before early synthesis is allowed (Round 1 always runs).
|
|
48
41
|
|
|
49
|
-
##
|
|
42
|
+
## Task Tracking
|
|
50
43
|
|
|
51
|
-
Track the session
|
|
44
|
+
Track the session in the harness's task list where it has one (the `wicked-garden-workflow` skill's `refs/integration.md` carries the field list and the harness-specific Hand-off), else your working notes (fail open on any tool errors):
|
|
52
45
|
|
|
53
|
-
1. Session start: `
|
|
54
|
-
2. After each persona contributes, after synthesis, and on decision:
|
|
55
|
-
`TaskUpdate(taskId, description='append: {persona_name}: {key_insight}' / 'Synthesis: {summary}' / 'Decision: {decision_record}')`
|
|
46
|
+
1. Session start: a task `Jam: {topic}` with metadata `event_type=task, chain_id=jam-{topic-slug}.root, source_agent=jam-facilitator, initiative={topic-slug}`.
|
|
47
|
+
2. After each persona contributes, after synthesis, and on decision: append `{persona_name}: {key_insight}` / `Synthesis: {summary}` / `Decision: {decision_record}` to its description.
|
|
56
48
|
|
|
57
|
-
Continue storing outcomes via the wicked-garden-mem skill (
|
|
58
|
-
|
|
49
|
+
Continue storing outcomes via the wicked-garden-mem skill (task = process,
|
|
50
|
+
stored memory = outcome).
|
|
59
51
|
|
|
60
52
|
## Session Structure
|
|
61
53
|
|
|
@@ -64,27 +56,21 @@ process, stored memory = outcome).
|
|
|
64
56
|
Before assembling personas, gather real evidence from the ecosystem:
|
|
65
57
|
|
|
66
58
|
**Step 1a: Recall past decisions** (if the knowledge layer is available)
|
|
67
|
-
|
|
68
|
-
Skill
|
|
69
|
-
|
|
70
|
-
args="recall \"past decisions related to: {topic}\""
|
|
71
|
-
)
|
|
72
|
-
```
|
|
59
|
+
|
|
60
|
+
**Hand-off** — open the `wicked-garden-mem` skill and run its `recall` action with `past decisions related to: {topic}` as the query; on Claude Code this is the Skill tool, on any other seat open the named skill from your catalog and carry it out inline, then continue here.
|
|
61
|
+
|
|
73
62
|
This surfaces: "Last time we discussed caching, we chose Redis because of X. Outcome: validated."
|
|
74
63
|
|
|
75
64
|
**Step 1b: Gather code evidence** (if code-related topic)
|
|
76
|
-
|
|
77
|
-
Use
|
|
78
|
-
|
|
65
|
+
|
|
66
|
+
Use your harness's file search or the `wicked-garden-search` skill to find relevant code patterns, existing implementations, or blast radius.
|
|
67
|
+
|
|
79
68
|
This surfaces: "There are 3 existing cache implementations in the codebase using pattern X."
|
|
80
69
|
|
|
81
70
|
**Step 1c: Check past brainstorm outcomes** (if the knowledge layer is available)
|
|
82
|
-
|
|
83
|
-
Skill
|
|
84
|
-
|
|
85
|
-
args="recall \"brainstorm outcomes jam decision\""
|
|
86
|
-
)
|
|
87
|
-
```
|
|
71
|
+
|
|
72
|
+
**Hand-off** — open the `wicked-garden-mem` skill and run its `recall` action with `brainstorm outcomes jam decision` as the query; on Claude Code this is the Skill tool, on any other seat open the named skill from your catalog and carry it out inline, then continue here.
|
|
73
|
+
|
|
88
74
|
This surfaces: "2 past decisions on similar topics: 1 validated, 1 modified."
|
|
89
75
|
|
|
90
76
|
**Step 1d: Compile evidence summary** (max 500 words)
|
|
@@ -292,10 +278,8 @@ Skip this step if no external CLIs are available. This is graceful enhancement,
|
|
|
292
278
|
|
|
293
279
|
After synthesis, automatically store a structured decision record:
|
|
294
280
|
|
|
295
|
-
1. Store via the wicked-garden-mem skill (store action) — graceful degradation: skip if unavailable
|
|
296
|
-
|
|
297
|
-
Skill(skill="wicked-garden-mem", args="store \"Decision: {topic}\nChosen: {recommended option from synthesis}\nRationale: {key reasoning}\nAlternatives considered: {other options}\nConfidence: {HIGH/MEDIUM/LOW}\nEvidence used: {summary of evidence brief}\nPersonas: {list of personas}\" (kind=fact, about=[jam, decision, {2-3 topic keywords}])")
|
|
298
|
-
```
|
|
281
|
+
1. Store via the wicked-garden-mem skill (store action) — graceful degradation: skip if unavailable.
|
|
282
|
+
**Hand-off** — open the `wicked-garden-mem` skill and run its `store` action with the record `Decision: {topic} / Chosen: {recommended option from synthesis} / Rationale: {key reasoning} / Alternatives considered: {other options} / Confidence: {HIGH/MEDIUM/LOW} / Evidence used: {summary of evidence brief} / Personas: {list of personas}` (kind=fact, about=[jam, decision, {2-3 topic keywords}]); on Claude Code this is the Skill tool, on any other seat open the named skill from your catalog and carry it out inline, then continue here.
|
|
299
283
|
2. **If unavailable**: Show the decision record inline so users can manually save it
|
|
300
284
|
|
|
301
285
|
This creates organizational memory — every brainstorm becomes a searchable, recallable decision record.
|
|
@@ -341,9 +325,6 @@ Put synthesis FIRST (context efficiency):
|
|
|
341
325
|
|
|
342
326
|
## Dispatch
|
|
343
327
|
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
-
|
|
347
|
-
- **Legacy delegation adapter (compat):** callers still emitting the pre-v12.25
|
|
348
|
-
subagent form resolve here through the frontmatter `subagent_type:` compat key —
|
|
349
|
-
`Task(subagent_type="wicked-garden:jam:brainstorm-facilitator")` maps to this fork skill.
|
|
328
|
+
Worker skill, reached by its name — `wicked-garden-jam-brainstorm-facilitator` — through a
|
|
329
|
+
Hand-off from the `wicked-garden-jam` skill's brainstorm sub-action or any caller. The pre-v12.25
|
|
330
|
+
subagent-delegation form is retired with the fork frontmatter.
|