@chankov/agent-skills 0.1.0 → 0.2.0
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/.pi/extensions/agent-skills-update-check/README.md +58 -0
- package/.pi/extensions/agent-skills-update-check/index.ts +161 -0
- package/.pi/extensions/agent-skills-update-check/package.json +6 -0
- package/.versions/0.2.0/.claude/commands/build.md +18 -0
- package/.versions/0.2.0/.claude/commands/code-simplify.md +22 -0
- package/.versions/0.2.0/.claude/commands/design-agent.md +14 -0
- package/.versions/0.2.0/.claude/commands/doctor.md +13 -0
- package/.versions/0.2.0/.claude/commands/plan.md +16 -0
- package/.versions/0.2.0/.claude/commands/prime.md +22 -0
- package/.versions/0.2.0/.claude/commands/review.md +16 -0
- package/.versions/0.2.0/.claude/commands/setup.md +19 -0
- package/.versions/0.2.0/.claude/commands/ship.md +17 -0
- package/.versions/0.2.0/.claude/commands/spec.md +15 -0
- package/.versions/0.2.0/.claude/commands/test.md +19 -0
- package/.versions/0.2.0/.opencode/commands/as-build.md +17 -0
- package/.versions/0.2.0/.opencode/commands/as-code-simplify.md +16 -0
- package/.versions/0.2.0/.opencode/commands/as-design-agent.md +15 -0
- package/.versions/0.2.0/.opencode/commands/as-doctor.md +11 -0
- package/.versions/0.2.0/.opencode/commands/as-plan.md +16 -0
- package/.versions/0.2.0/.opencode/commands/as-prime.md +22 -0
- package/.versions/0.2.0/.opencode/commands/as-review.md +15 -0
- package/.versions/0.2.0/.opencode/commands/as-setup.md +11 -0
- package/.versions/0.2.0/.opencode/commands/as-ship.md +16 -0
- package/.versions/0.2.0/.opencode/commands/as-spec.md +16 -0
- package/.versions/0.2.0/.opencode/commands/as-test.md +21 -0
- package/.versions/0.2.0/.pi/agents/agent-chain.yaml +49 -0
- package/.versions/0.2.0/.pi/agents/bowser.md +19 -0
- package/.versions/0.2.0/.pi/agents/pi-pi/agent-expert.md +98 -0
- package/.versions/0.2.0/.pi/agents/pi-pi/cli-expert.md +41 -0
- package/.versions/0.2.0/.pi/agents/pi-pi/config-expert.md +63 -0
- package/.versions/0.2.0/.pi/agents/pi-pi/ext-expert.md +43 -0
- package/.versions/0.2.0/.pi/agents/pi-pi/keybinding-expert.md +134 -0
- package/.versions/0.2.0/.pi/agents/pi-pi/pi-orchestrator.md +57 -0
- package/.versions/0.2.0/.pi/agents/pi-pi/prompt-expert.md +70 -0
- package/.versions/0.2.0/.pi/agents/pi-pi/skill-expert.md +42 -0
- package/.versions/0.2.0/.pi/agents/pi-pi/theme-expert.md +40 -0
- package/.versions/0.2.0/.pi/agents/pi-pi/tui-expert.md +85 -0
- package/.versions/0.2.0/.pi/agents/teams.yaml +31 -0
- package/.versions/0.2.0/.pi/damage-control-rules.yaml +278 -0
- package/.versions/0.2.0/.pi/extensions/agent-skills-update-check/README.md +58 -0
- package/.versions/0.2.0/.pi/extensions/agent-skills-update-check/index.ts +161 -0
- package/.versions/0.2.0/.pi/extensions/agent-skills-update-check/package.json +6 -0
- package/.versions/0.2.0/.pi/extensions/chrome-devtools-mcp/README.md +39 -0
- package/.versions/0.2.0/.pi/extensions/chrome-devtools-mcp/index.ts +61 -0
- package/.versions/0.2.0/.pi/extensions/chrome-devtools-mcp/package.json +6 -0
- package/.versions/0.2.0/.pi/extensions/compact-and-continue/README.md +42 -0
- package/.versions/0.2.0/.pi/extensions/compact-and-continue/index.ts +120 -0
- package/.versions/0.2.0/.pi/extensions/compact-and-continue/package.json +6 -0
- package/.versions/0.2.0/.pi/extensions/mcp-bridge/README.md +46 -0
- package/.versions/0.2.0/.pi/extensions/mcp-bridge/index.ts +206 -0
- package/.versions/0.2.0/.pi/extensions/mcp-bridge/package.json +6 -0
- package/.versions/0.2.0/.pi/extensions/package-lock.json +1143 -0
- package/.versions/0.2.0/.pi/extensions/package.json +9 -0
- package/.versions/0.2.0/.pi/harnesses/agent-chain/README.md +37 -0
- package/.versions/0.2.0/.pi/harnesses/agent-chain/index.ts +795 -0
- package/.versions/0.2.0/.pi/harnesses/agent-chain/package.json +6 -0
- package/.versions/0.2.0/.pi/harnesses/agent-team/README.md +38 -0
- package/.versions/0.2.0/.pi/harnesses/agent-team/index.ts +732 -0
- package/.versions/0.2.0/.pi/harnesses/agent-team/package.json +6 -0
- package/.versions/0.2.0/.pi/harnesses/coms/README.md +36 -0
- package/.versions/0.2.0/.pi/harnesses/coms/index.ts +1595 -0
- package/.versions/0.2.0/.pi/harnesses/coms/package.json +6 -0
- package/.versions/0.2.0/.pi/harnesses/coms-net/README.md +46 -0
- package/.versions/0.2.0/.pi/harnesses/coms-net/index.ts +1637 -0
- package/.versions/0.2.0/.pi/harnesses/coms-net/package.json +6 -0
- package/.versions/0.2.0/.pi/harnesses/damage-control/README.md +38 -0
- package/.versions/0.2.0/.pi/harnesses/damage-control/index.ts +207 -0
- package/.versions/0.2.0/.pi/harnesses/damage-control/package.json +6 -0
- package/.versions/0.2.0/.pi/harnesses/damage-control-continue/README.md +37 -0
- package/.versions/0.2.0/.pi/harnesses/damage-control-continue/index.ts +234 -0
- package/.versions/0.2.0/.pi/harnesses/damage-control-continue/package.json +6 -0
- package/.versions/0.2.0/.pi/harnesses/minimal/README.md +27 -0
- package/.versions/0.2.0/.pi/harnesses/minimal/index.ts +32 -0
- package/.versions/0.2.0/.pi/harnesses/minimal/package.json +6 -0
- package/.versions/0.2.0/.pi/harnesses/package-lock.json +35 -0
- package/.versions/0.2.0/.pi/harnesses/package.json +9 -0
- package/.versions/0.2.0/.pi/harnesses/pi-pi/README.md +39 -0
- package/.versions/0.2.0/.pi/harnesses/pi-pi/index.ts +631 -0
- package/.versions/0.2.0/.pi/harnesses/pi-pi/package.json +6 -0
- package/.versions/0.2.0/.pi/harnesses/purpose-gate/README.md +27 -0
- package/.versions/0.2.0/.pi/harnesses/purpose-gate/index.ts +82 -0
- package/.versions/0.2.0/.pi/harnesses/purpose-gate/package.json +6 -0
- package/.versions/0.2.0/.pi/harnesses/session-replay/README.md +28 -0
- package/.versions/0.2.0/.pi/harnesses/session-replay/index.ts +214 -0
- package/.versions/0.2.0/.pi/harnesses/session-replay/package.json +6 -0
- package/.versions/0.2.0/.pi/harnesses/subagent-widget/README.md +36 -0
- package/.versions/0.2.0/.pi/harnesses/subagent-widget/index.ts +479 -0
- package/.versions/0.2.0/.pi/harnesses/subagent-widget/package.json +6 -0
- package/.versions/0.2.0/.pi/harnesses/system-select/README.md +39 -0
- package/.versions/0.2.0/.pi/harnesses/system-select/index.ts +165 -0
- package/.versions/0.2.0/.pi/harnesses/system-select/package.json +6 -0
- package/.versions/0.2.0/.pi/harnesses/tilldone/README.md +35 -0
- package/.versions/0.2.0/.pi/harnesses/tilldone/index.ts +724 -0
- package/.versions/0.2.0/.pi/harnesses/tilldone/package.json +6 -0
- package/.versions/0.2.0/.pi/harnesses/tool-counter/README.md +31 -0
- package/.versions/0.2.0/.pi/harnesses/tool-counter/index.ts +100 -0
- package/.versions/0.2.0/.pi/harnesses/tool-counter/package.json +6 -0
- package/.versions/0.2.0/.pi/harnesses/tool-counter-widget/README.md +27 -0
- package/.versions/0.2.0/.pi/harnesses/tool-counter-widget/index.ts +66 -0
- package/.versions/0.2.0/.pi/harnesses/tool-counter-widget/package.json +6 -0
- package/.versions/0.2.0/.pi/prompts/build.md +24 -0
- package/.versions/0.2.0/.pi/prompts/code-simplify.md +22 -0
- package/.versions/0.2.0/.pi/prompts/doctor.md +13 -0
- package/.versions/0.2.0/.pi/prompts/plan.md +16 -0
- package/.versions/0.2.0/.pi/prompts/review.md +16 -0
- package/.versions/0.2.0/.pi/prompts/setup.md +19 -0
- package/.versions/0.2.0/.pi/prompts/ship.md +17 -0
- package/.versions/0.2.0/.pi/prompts/spec.md +15 -0
- package/.versions/0.2.0/.pi/prompts/test.md +19 -0
- package/.versions/0.2.0/.pi/skills/bowser/SKILL.md +114 -0
- package/.versions/0.2.0/.version +1 -0
- package/.versions/0.2.0/agents/builder.md +6 -0
- package/.versions/0.2.0/agents/code-reviewer.md +93 -0
- package/.versions/0.2.0/agents/documenter.md +6 -0
- package/.versions/0.2.0/agents/plan-reviewer.md +22 -0
- package/.versions/0.2.0/agents/planner.md +6 -0
- package/.versions/0.2.0/agents/scout.md +6 -0
- package/.versions/0.2.0/agents/security-auditor.md +97 -0
- package/.versions/0.2.0/agents/test-engineer.md +89 -0
- package/.versions/0.2.0/hooks/SIMPLIFY-IGNORE.md +90 -0
- package/.versions/0.2.0/hooks/hooks.json +14 -0
- package/.versions/0.2.0/hooks/session-start.sh +74 -0
- package/.versions/0.2.0/hooks/simplify-ignore-test.sh +247 -0
- package/.versions/0.2.0/hooks/simplify-ignore.sh +302 -0
- package/.versions/0.2.0/references/accessibility-checklist.md +159 -0
- package/.versions/0.2.0/references/performance-checklist.md +121 -0
- package/.versions/0.2.0/references/prompting-patterns.md +380 -0
- package/.versions/0.2.0/references/security-checklist.md +134 -0
- package/.versions/0.2.0/references/testing-patterns.md +236 -0
- package/.versions/0.2.0/skills/api-and-interface-design/SKILL.md +294 -0
- package/.versions/0.2.0/skills/browser-testing-with-devtools/SKILL.md +335 -0
- package/.versions/0.2.0/skills/ci-cd-and-automation/SKILL.md +390 -0
- package/.versions/0.2.0/skills/code-review-and-quality/SKILL.md +347 -0
- package/.versions/0.2.0/skills/code-simplification/SKILL.md +331 -0
- package/.versions/0.2.0/skills/context-engineering/SKILL.md +291 -0
- package/.versions/0.2.0/skills/debugging-and-error-recovery/SKILL.md +300 -0
- package/.versions/0.2.0/skills/deprecation-and-migration/SKILL.md +206 -0
- package/.versions/0.2.0/skills/designing-agents/SKILL.md +394 -0
- package/.versions/0.2.0/skills/designing-agents/pi-harness-authoring.md +213 -0
- package/.versions/0.2.0/skills/documentation-and-adrs/SKILL.md +278 -0
- package/.versions/0.2.0/skills/frontend-ui-engineering/SKILL.md +322 -0
- package/.versions/0.2.0/skills/git-workflow-and-versioning/SKILL.md +316 -0
- package/.versions/0.2.0/skills/guided-workspace-setup/SKILL.md +293 -0
- package/.versions/0.2.0/skills/idea-refine/SKILL.md +178 -0
- package/.versions/0.2.0/skills/idea-refine/examples.md +238 -0
- package/.versions/0.2.0/skills/idea-refine/frameworks.md +99 -0
- package/.versions/0.2.0/skills/idea-refine/refinement-criteria.md +113 -0
- package/.versions/0.2.0/skills/idea-refine/scripts/idea-refine.sh +15 -0
- package/.versions/0.2.0/skills/incremental-implementation/SKILL.md +279 -0
- package/.versions/0.2.0/skills/performance-optimization/SKILL.md +350 -0
- package/.versions/0.2.0/skills/planning-and-task-breakdown/SKILL.md +237 -0
- package/.versions/0.2.0/skills/security-and-hardening/SKILL.md +349 -0
- package/.versions/0.2.0/skills/shipping-and-launch/SKILL.md +309 -0
- package/.versions/0.2.0/skills/source-driven-development/SKILL.md +194 -0
- package/.versions/0.2.0/skills/spec-driven-development/SKILL.md +237 -0
- package/.versions/0.2.0/skills/test-driven-development/SKILL.md +379 -0
- package/.versions/0.2.0/skills/using-agent-skills/SKILL.md +176 -0
- package/CHANGELOG.md +36 -0
- package/bin/cli.js +42 -7
- package/bin/lib/update-notifier.js +195 -0
- package/docs/npm-install.md +60 -0
- package/hooks/session-start.sh +66 -12
- package/package.json +1 -1
- package/skills/guided-workspace-setup/SKILL.md +1 -1
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: guided-workspace-setup
|
|
3
|
+
description: Guides installation of agent-skills artifacts into a target workspace. Use when onboarding a project to agent-skills, when installing skills, commands, prompts, personas, or pi extensions for a chosen coding agent, or when a workspace needs its setup files configured.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Guided Workspace Setup
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
This skill installs and configures agent-skills artifacts — skills, agent personas, commands or prompts, pi extensions and harnesses, references, and hooks — into a target workspace for a chosen coding agent. It runs interactively, writes project overrides to the target's `.ai/agent-skills-overrides.md`, records what it installed in `.ai/agent-skills-setup.md`, and can be re-run on the same workspace to add, update, or remove artifacts.
|
|
11
|
+
|
|
12
|
+
## When to Use
|
|
13
|
+
|
|
14
|
+
- Onboarding a new project or workspace to agent-skills
|
|
15
|
+
- Installing or changing which skills, commands, or personas a workspace uses
|
|
16
|
+
- Re-running setup to add, update, or remove already-installed artifacts
|
|
17
|
+
- Configuring a workspace's `.ai/agent-skills-overrides.md`
|
|
18
|
+
|
|
19
|
+
**NOT for:** authoring new skills or personas (use `designing-sub-agents`); editing artifacts inside the agent-skills repo itself; general context or rules-file tuning (use `context-engineering`).
|
|
20
|
+
|
|
21
|
+
## The Workflow
|
|
22
|
+
|
|
23
|
+
This skill is run from the agent-skills repo with the target coding agent active, and invoked with a path to the workspace to configure. Steps are gated — nothing is written to the target workspace until the user confirms in Step 9.
|
|
24
|
+
|
|
25
|
+
It maintains two files in the target's `.ai/` directory: `agent-skills-overrides.md` holds the minimal per-skill overrides that other skills read on every run, and `agent-skills-setup.md` holds the install record this skill itself reads on re-runs. The overrides file stays small; the install record absorbs the bulk.
|
|
26
|
+
|
|
27
|
+
### 1. Detect interaction capability
|
|
28
|
+
|
|
29
|
+
Determine which interaction mode this runtime supports, in order of preference:
|
|
30
|
+
|
|
31
|
+
- **Native multi-select widget** (e.g. a runtime that renders true checkbox lists) — use it for every group in Step 6.
|
|
32
|
+
- **`AskUserQuestion` with `multiSelect: true`** — usable when a group has ≤ 4 options, since the tool caps options at 4. Larger groups fall back to the next mode.
|
|
33
|
+
- **Tabular fallback** — print the group table (Step 6 format) and ask the user to reply with the picks. Always accept the shortcuts `all`, `recommended`, `none`, or a comma-separated list of item names/numbers.
|
|
34
|
+
|
|
35
|
+
### 2. Resolve inputs
|
|
36
|
+
|
|
37
|
+
Resolve four things. Accept any already supplied in the invocation (the `npx agent-skills init` CLI passes the first three as flags); otherwise ask.
|
|
38
|
+
|
|
39
|
+
- **Source root** — the agent-skills package. Derive it from this `SKILL.md`'s own location: `skills/guided-workspace-setup/` sits two levels below the package root. When installed via npm, the package root is `node_modules/agent-skills/` or the `npx` cache.
|
|
40
|
+
- **Workspace path** — the target project to configure. Confirm the path exists and is a directory; stop and ask again if it does not.
|
|
41
|
+
- **Coding agent** — `claude-code`, `opencode`, or `pi`. Detect the running agent from the runtime, show it to the user, and let them choose a different one.
|
|
42
|
+
- **Package version** — read `version` from the source root's `package.json`. This is the version that will be stamped into the install record in Step 10, and the right-hand side of every version-aware diff in Step 6.
|
|
43
|
+
|
|
44
|
+
### 3. Read the agent's setup conventions
|
|
45
|
+
|
|
46
|
+
For `opencode` and `pi`, read `docs/<agent>-setup.md` in the source root and follow the install locations and format it documents. For `claude-code`, use the built-in target map below. When the `*-setup.md` doc and the built-in map disagree, the doc wins.
|
|
47
|
+
|
|
48
|
+
Target map, relative to the workspace root:
|
|
49
|
+
|
|
50
|
+
| Artifact | claude-code | opencode | pi |
|
|
51
|
+
|---|---|---|---|
|
|
52
|
+
| Skills | `.claude/skills/<name>/` | per `docs/opencode-setup.md` | `.pi/skills/<name>/` |
|
|
53
|
+
| Personas | `.claude/agents/<name>.md` | per `docs/opencode-setup.md` | `.pi/agents/<name>.md` |
|
|
54
|
+
| Commands / prompts | `.claude/commands/<name>.md` | `.opencode/commands/as-<name>.md` | `.pi/prompts/<name>.md` |
|
|
55
|
+
| References | `.claude/references/<name>.md` | per `docs/opencode-setup.md` | per `docs/pi-setup.md` |
|
|
56
|
+
| Hooks | `.claude/hooks/<name>`, registered in `.claude/settings.json` | per `docs/opencode-setup.md` | per `docs/pi-setup.md` |
|
|
57
|
+
| pi extensions | — | — | `.pi/extensions/<name>/` |
|
|
58
|
+
| pi harnesses | — | — | `.pi/harnesses/<name>/` |
|
|
59
|
+
|
|
60
|
+
When neither the built-in map nor the agent's `*-setup.md` defines a path for a selected artifact, ask the user instead of guessing.
|
|
61
|
+
|
|
62
|
+
### 4. Analyse the workspace
|
|
63
|
+
|
|
64
|
+
Scan the workspace to ground the recommendations and the overrides offer:
|
|
65
|
+
|
|
66
|
+
- Language, framework, and package manager (`package.json`, `go.mod`, `pyproject.toml`, …)
|
|
67
|
+
- Test runner and dev-server command, where discoverable
|
|
68
|
+
- Git presence and current branch
|
|
69
|
+
- Existing agent directories (`.claude/`, `.opencode/`, `.pi/`)
|
|
70
|
+
- Existing `.ai/agent-skills-setup.md` — read its `## install-status` section to learn what is already installed, **and the `version:` line in `## workspace-summary` to learn which package version performed the install**
|
|
71
|
+
- An existing `.ai/agent-skills-setup.md` (or any populated agent directory) means this workspace has prior state — flag it for Step 5
|
|
72
|
+
|
|
73
|
+
**Version delta.** Compare the recorded `version:` against the package version from Step 2:
|
|
74
|
+
|
|
75
|
+
- Missing `version:` → workspace is **pre-versioning**. Prompt the user: "This workspace was set up before agent-skills used semver. Stamp it as `v<current>` (assume installed copies match the current source), or wipe and reinstall?" Do not run the three-way diff for pre-versioning workspaces — there is no recorded baseline.
|
|
76
|
+
- Recorded `version:` equals current → no version-driven menu changes; Step 6 only surfaces content-level drift.
|
|
77
|
+
- Recorded `version:` differs from current → load `CHANGELOG.md` between the two versions, and load the `.versions/<recorded>/` snapshot from the source root. Both feed Step 6.
|
|
78
|
+
|
|
79
|
+
Report a short summary of the findings before continuing.
|
|
80
|
+
|
|
81
|
+
### 5. Doctor preflight (existing setup only)
|
|
82
|
+
|
|
83
|
+
If Step 4 found prior state — `.ai/agent-skills-setup.md` exists **or** any of the install-target directories already contains skills/personas/commands — run the Doctor scan now, **before** showing the install menu. A fresh workspace skips this step.
|
|
84
|
+
|
|
85
|
+
Walk every install-target directory the chosen agent uses and look for **broken symlinks** — links whose source has been moved, renamed, or deleted. Directories to check, when present:
|
|
86
|
+
|
|
87
|
+
- `agents/`, `.claude/agents/`, `.opencode/agents/`, `.codex/agents/`, `.gemini/agents/`, `.github/agents/`, `.pi/agents/` (and its `pi-pi/` subdirectory)
|
|
88
|
+
- `.claude/skills/`, `.opencode/skills/`, `.pi/skills/`, `.agents/skills`
|
|
89
|
+
- `.claude/commands/`, `.opencode/commands/`, `.pi/prompts/`
|
|
90
|
+
- `.claude/references/`, `.claude/hooks/`
|
|
91
|
+
|
|
92
|
+
For each broken link discovered:
|
|
93
|
+
|
|
94
|
+
1. Resolve where the link **was** pointing (`readlink`) and look up the canonical replacement in the source `agents/` or `skills/` tree — many breakages are stale names from the pre-merge layout (e.g. `reviewer` → `code-reviewer`, `red-team` → `security-auditor`).
|
|
95
|
+
2. If a canonical replacement exists, offer to repoint the symlink to it.
|
|
96
|
+
3. If no replacement exists, offer to delete the broken link.
|
|
97
|
+
4. Never overwrite a regular file you find at a target path — only act on symlinks whose target is missing.
|
|
98
|
+
|
|
99
|
+
Also flag any YAML configs (`teams.yaml`, `agent-chain.yaml`) that still reference removed persona names, and offer to rename the references to the canonical name.
|
|
100
|
+
|
|
101
|
+
Present findings in a single table:
|
|
102
|
+
|
|
103
|
+
| # | Path | Issue | Suggested fix |
|
|
104
|
+
|---|---|---|---|
|
|
105
|
+
| 1 | `.claude/agents/reviewer.md` | broken symlink → missing `agents/reviewer.md` | repoint to `agents/code-reviewer.md` |
|
|
106
|
+
| 2 | `.pi/agents/red-team.md` | broken symlink, no replacement | delete |
|
|
107
|
+
| 3 | `.pi/agents/teams.yaml` | references `red-team` | rename to `security-auditor` |
|
|
108
|
+
|
|
109
|
+
Then ask, multi-select: which fixes to apply now. Apply only the picked ones; record skipped items so the install menu can surface them again. Append a `## doctor-runs` line to `.ai/agent-skills-setup.md` with the date, agent, phase (`preflight`), and `repaired` / `deleted` / `skipped` counts.
|
|
110
|
+
|
|
111
|
+
The doctor scan is also exposed standalone as `/doctor` — running it outside a setup pass is this same scan-and-repair flow without the rest of the install menu.
|
|
112
|
+
|
|
113
|
+
### 6. Present the install menu
|
|
114
|
+
|
|
115
|
+
Offer every installable artifact, split into the groups below. **Each group is its own multi-select prompt** so the user can pick at the finest granularity. Within a group, render the items as a markdown table using this fixed format:
|
|
116
|
+
|
|
117
|
+
| Pick | Item | Status | Rec | Purpose |
|
|
118
|
+
|---|---|---|---|---|
|
|
119
|
+
| `[x]` / `[ ]` | `<name>` | one of the Status values below | `★` if recommended, else blank | one-line purpose |
|
|
120
|
+
|
|
121
|
+
**Pre-selection rule.** The `Pick` column is pre-ticked from the workspace's current state — not from preference. Every item is either pre-checked `[x]` (touched if confirmed) or pre-unchecked `[ ]` (left alone if confirmed):
|
|
122
|
+
|
|
123
|
+
| Current state | Pre-check | What confirming will do |
|
|
124
|
+
|---|---|---|
|
|
125
|
+
| `installed · up to date` | `[x]` | no-op (kept as-is) |
|
|
126
|
+
| `installed · outdated` (source newer than the installed copy; copy-mode only) | `[x]` | refresh to current source |
|
|
127
|
+
| `installed · modified` (target diverged from source) | `[x]` | refresh from source — **local edits will be overwritten**; untick to preserve them |
|
|
128
|
+
| `installed · upgrade available` (recorded version != current; user copy still matches the recorded-version source) | `[x]` | clean refresh to the current-version source |
|
|
129
|
+
| `installed · conflicting upgrade` (recorded version != current; user modified the copy AND source changed upstream) | `[ ]` | nothing — show the three-way diff (recorded vs installed vs current) inline and ask before any write; tick only after the user accepts the overwrite |
|
|
130
|
+
| `installed · removed upstream` (artifact gone in the current version) | `[x]` | propose deletion in Step 10 (subject to the removal-scope rule); untick to keep the local copy |
|
|
131
|
+
| `not installed` | `[ ]` | nothing — unless the user ticks it to install |
|
|
132
|
+
| `not installed · new in this version` (artifact added between recorded and current) | `[ ]` | nothing — unless the user ticks it; marked `★` if recommended |
|
|
133
|
+
| `broken · skipped in preflight` (carried over from Step 5) | `[ ]` | remove the dangling link in Step 10; tick it to attempt repair instead |
|
|
134
|
+
| `not installed · ★ recommended` | `[ ]` | nothing — unless the user ticks it or replies `recommended` |
|
|
135
|
+
|
|
136
|
+
**The three-way diff for `conflicting upgrade`.** For each row in that state, compare:
|
|
137
|
+
|
|
138
|
+
- *source @ recorded* — read from `<source-root>/.versions/<recorded-version>/<artifact-path>`
|
|
139
|
+
- *installed copy* — read from the target path in the workspace
|
|
140
|
+
- *source @ current* — read from `<source-root>/<artifact-path>`
|
|
141
|
+
|
|
142
|
+
If the recorded snapshot is missing (unpublished local build, or a version older than the snapshot retention), fall back to "treat installed copy as canonical" — do not pretend a diff exists. Mention the missing snapshot in the row's status text so the user can decide.
|
|
143
|
+
|
|
144
|
+
After the table, ask: *"Which items in this group? — adjust the picks, or reply `all` / `recommended` / `none` / `keep` (keep the pre-selection as shown)."* `recommended` ticks every `★` item **in addition to** the already-installed pre-selection (so the user never accidentally removes installed items by accepting recommendations). `keep` is the no-change shortcut.
|
|
145
|
+
|
|
146
|
+
For an already-configured workspace, an **unchecked installed item means *remove it*** (subject to the removal-scope rule); a **checked one means *keep or update it***. Status text appears verbatim for every row — even `not installed` — so the user always sees an explicit state instead of inferring it from an empty checkbox.
|
|
147
|
+
|
|
148
|
+
**Source availability filter — never substitute across agents.** Each row is offered only when the source file the **chosen agent** needs already exists in this repo. The source location is fixed per agent:
|
|
149
|
+
|
|
150
|
+
| Artifact | claude-code source | opencode source | pi source |
|
|
151
|
+
|---|---|---|---|
|
|
152
|
+
| Skills | `skills/<name>/SKILL.md` | `skills/<name>/SKILL.md` | `skills/<name>/SKILL.md` |
|
|
153
|
+
| Personas | `agents/<name>.md` | `agents/<name>.md` | `agents/<name>.md` |
|
|
154
|
+
| Commands / prompts | `.claude/commands/<name>.md` | `.opencode/commands/as-<name>.md` | `.pi/prompts/<name>.md` |
|
|
155
|
+
| pi extensions / harnesses / runtime skills | — | — | `.pi/extensions/<name>/`, `.pi/harnesses/<name>/`, `.pi/skills/<name>/` |
|
|
156
|
+
| References / hooks | source files in `references/` / `hooks/` |
|
|
157
|
+
|
|
158
|
+
If the per-agent source is missing, the row is **not shown** — never silently fall back to a different agent's tree (for example: do not symlink `.claude/commands/design-agent.md` from `.pi/prompts/design-agent.md` when the agent is `pi`). When the user explicitly asks for an item the source lacks for their agent, say so plainly and stop; the answer is to author the missing source file first, not to cross-link runtimes.
|
|
159
|
+
|
|
160
|
+
Groups, in order:
|
|
161
|
+
|
|
162
|
+
1. **Skills — Define / Plan** — `spec-driven-development` ★, `planning-and-task-breakdown` ★, `idea-refine`
|
|
163
|
+
2. **Skills — Build** — `incremental-implementation` ★, `test-driven-development` ★, `context-engineering`, `source-driven-development`, `frontend-ui-engineering`, `api-and-interface-design`
|
|
164
|
+
3. **Skills — Verify** — `browser-testing-with-devtools`, `debugging-and-error-recovery` ★
|
|
165
|
+
4. **Skills — Review** — `code-review-and-quality` ★, `code-simplification`, `security-and-hardening`, `performance-optimization`
|
|
166
|
+
5. **Skills — Ship** — `git-workflow-and-versioning` ★, `ci-cd-and-automation`, `deprecation-and-migration`, `documentation-and-adrs`, `shipping-and-launch`
|
|
167
|
+
6. **Skills — Meta** — `using-agent-skills` ★, `designing-agents` *(`guided-workspace-setup` is installer-only — never offered)*
|
|
168
|
+
7. **Agent personas — writeable** — `builder`, `documenter`
|
|
169
|
+
8. **Agent personas — read-only** (carry `tools: read,bash,grep,find,ls` and an explicit "Do NOT modify files." rule) — `code-reviewer` ★, `test-engineer` ★, `security-auditor`, `planner`, `plan-reviewer`, `scout`
|
|
170
|
+
9. **Commands / prompts** (mapped to the chosen agent — items without a per-agent source are filtered out, no cross-tool substitution) — full candidate list: `spec` ★, `plan` ★, `build` ★, `test` ★, `review` ★, `code-simplify`, `ship`, `design-agent`, `prime`. The actual menu shows only items whose per-agent source file exists — for example, `.pi/prompts/design-agent.md` and `.pi/prompts/prime.md` are absent, so neither is offered when the agent is `pi`. *(`setup` and `doctor` are installer-only — never offered, since they live in the source agent-skills repo and act on target workspaces from there.)*
|
|
171
|
+
10. **pi extensions** *(pi only — always-on once installed)* — `mcp-bridge`, `chrome-devtools-mcp`, `compact-and-continue`, `agent-skills-update-check` ★
|
|
172
|
+
11. **pi harnesses — UI / status** *(pi only, mutually exclusive at runtime — install many, load one)* — `minimal`, `tool-counter`, `tool-counter-widget`, `session-replay`, `subagent-widget`
|
|
173
|
+
12. **pi harnesses — discipline / focus** *(pi only)* — `purpose-gate`, `tilldone`, `system-select`
|
|
174
|
+
13. **pi harnesses — safety** *(pi only)* — `damage-control`, `damage-control-continue`
|
|
175
|
+
14. **pi harnesses — orchestration** *(pi only)* — `agent-chain`, `agent-team`, `pi-pi`
|
|
176
|
+
15. **pi harnesses — messaging** *(pi only)* — `coms`, `coms-net`
|
|
177
|
+
16. **pi-runtime skills** *(pi only)* — `bowser`
|
|
178
|
+
17. **References** — testing, performance, security, accessibility checklists
|
|
179
|
+
18. **Hooks** — `session-start.sh`, `simplify-ignore.sh` (+ `simplify-ignore-test.sh`)
|
|
180
|
+
|
|
181
|
+
Defaults differ by workspace state:
|
|
182
|
+
|
|
183
|
+
- **Fresh workspace (no install record).** Pre-selection is empty; replying `recommended` ticks the `★` items across groups 1–6, 7–8, 9. pi groups stay empty unless the agent is `pi`.
|
|
184
|
+
- **Existing workspace.** Pre-selection mirrors the install record — every `installed · *` row starts `[x]`. Replying `keep` accepts that pre-selection unchanged; replying `recommended` adds the `★` items on top of what is already installed (it never silently unticks installed items).
|
|
185
|
+
|
|
186
|
+
After every group, restate the picks in one line so the user can correct them before moving on. The restate line uses the same status vocabulary — for example: *"Group 4 Review: keep `code-review-and-quality` (up to date), install `security-and-hardening` (recommended), remove `performance-optimization`."*
|
|
187
|
+
|
|
188
|
+
**Removal scope — what "unchecked = remove" actually touches.** A target item is eligible for removal only when **both** are true:
|
|
189
|
+
|
|
190
|
+
1. **It is part of the agent-skills inventory.** Its name matches an artifact shipped in the source repo's canonical trees (`skills/`, `agents/`, `.claude/commands/`, `.pi/prompts/`, `.pi/extensions/`, `.pi/harnesses/`, `.pi/skills/`, `references/`, `hooks/`). Out-of-inventory items — user-authored skills, project-specific commands, custom personas, third-party plugins, unrelated dotfiles — are never proposed for removal even if they sit in the same directory.
|
|
191
|
+
2. **It is recorded in this workspace's install record.** The `## install-status` section of `.ai/agent-skills-setup.md` lists it as previously installed by this skill, *or* it is a symlink whose target resolves into the agent-skills source root (which is unambiguously ours).
|
|
192
|
+
|
|
193
|
+
If a candidate fails either test, list it once under a "Skipped — not owned by agent-skills" line in the Step 9 plan and leave it alone. Settings files (`.claude/settings.json`, `.opencode/config*`, env vars, MCP config) are touched **only** to remove agent-skills' own hook registrations — never other keys, never user env vars, never third-party MCP entries.
|
|
194
|
+
|
|
195
|
+
### 7. Offer project overrides
|
|
196
|
+
|
|
197
|
+
From the Step 4 analysis, propose draft override sections for `.ai/agent-skills-overrides.md` — `spec-driven-development`, `planning-and-task-breakdown`, `browser-testing-with-devtools`, `git-workflow-and-versioning`. Write each section as terse `key: value` lines, never prose: the lifecycle skills load this file on every run and parse it by key, so it stays minimal. Show the draft and let the user edit, accept, or skip each section. Reference env-var names for any credentials; keep secrets out of the file.
|
|
198
|
+
|
|
199
|
+
### 8. Choose the install method
|
|
200
|
+
|
|
201
|
+
Ask `copy` or `symlink` for this run.
|
|
202
|
+
|
|
203
|
+
- `copy` — copy each artifact into its target path.
|
|
204
|
+
- `symlink` — link each target path to the source artifact in the agent-skills repo.
|
|
205
|
+
|
|
206
|
+
### 9. Confirm the plan
|
|
207
|
+
|
|
208
|
+
Present the full set as one summary table — artifacts to add, update, and remove; their resolved target paths; the chosen install method; and the changes to both `.ai/` files. When the version delta from Step 4 is non-empty, lead the summary with a one-line "Changes since `v<recorded>` → `v<current>`" block sourced from `CHANGELOG.md` (only the entries between the two versions, not the full file). Ask the user to confirm, and write nothing until they do.
|
|
209
|
+
|
|
210
|
+
### 10. Apply the setup
|
|
211
|
+
|
|
212
|
+
Apply the changes: create directories, add or update selected artifacts, and remove deselected ones — **bound by the removal-scope rule from Step 6**. Before deleting any target, verify both conditions: (a) the name is in the agent-skills inventory and (b) the item is either listed in `## install-status` or is a symlink resolving into the source repo. If either check fails, skip the deletion silently and log the path under a "Skipped — not owned by agent-skills" line in the final report.
|
|
213
|
+
|
|
214
|
+
**Apply without mid-flight questions.** Refresh every ticked item from its per-agent source unconditionally. Do not pause to ask whether to overwrite a modified file — `installed · modified` already appeared in Step 6 with the explicit warning that refreshing overwrites local edits, and the user's tick is the consent. The Step 9 confirmation is the single gate; nothing further is asked during apply. (If the apply hits a genuine error — permission denied, source missing, broken target type — stop, report it, and ask how to proceed; that is not the same as soliciting consent.)
|
|
215
|
+
|
|
216
|
+
For settings files (`.claude/settings.json` and equivalents), edit only the agent-skills hook entries; leave every other key — user permissions, env vars, third-party MCP servers, custom hooks — untouched.
|
|
217
|
+
|
|
218
|
+
Then write both `.ai/` files: the agreed override sections from Step 7 into `.ai/agent-skills-overrides.md`, and the install record — artifacts, target paths, method, **package version**, date — into `.ai/agent-skills-setup.md`. The `version:` line in `## workspace-summary` is set to the package version from Step 2; this is what the next re-run will compare against to compute the version delta.
|
|
219
|
+
|
|
220
|
+
### 11. Verify and report
|
|
221
|
+
|
|
222
|
+
Re-scan the install-target directories one more time and confirm: every selected artifact exists at its target path, every deselected one is gone, and zero broken symlinks remain. Also re-read `.ai/agent-skills-setup.md` and verify the `version:` line matches the package version from Step 2 — a mismatch here means the apply pass did not stamp the new version, and must be corrected before the next re-run computes the wrong delta. If the post-apply scan surfaces any new breakage, treat it as a doctor finding and offer the same repair options as Step 5, then append a second `## doctor-runs` line with `phase: postflight`. List what changed, point the user at `.ai/agent-skills-overrides.md` and `.ai/agent-skills-setup.md`, and suggest loading `using-agent-skills` first in their next session.
|
|
223
|
+
|
|
224
|
+
## Common Rationalizations
|
|
225
|
+
|
|
226
|
+
| Rationalization | Reality |
|
|
227
|
+
|---|---|
|
|
228
|
+
| "The user wants everything — I'll install all skills without asking." | Loading every skill wastes context and dilutes discovery. The per-group menu and the `★` recommendations exist so a workspace gets only what it needs. |
|
|
229
|
+
| "I'll skip the doctor preflight — the menu will surface broken items anyway." | Broken symlinks distort the install menu's `installed` / `not installed` state. Repair first so the menu reflects reality. |
|
|
230
|
+
| "I'll collapse the groups into one big checklist — it's faster." | The groups are how the user reasons about scope (build vs review vs pi-only). A flat list makes recommendations meaningless. |
|
|
231
|
+
| "I'll copy the files now and confirm afterwards." | Writing before the Step 9 confirmation can clobber config the user wanted to keep. Confirmation is the only gate that protects the target workspace. |
|
|
232
|
+
| "There is no `*-setup.md` for this agent, so I'll guess the install paths." | Guessed paths put artifacts where the agent never loads them. Read the agent's setup doc, or use the built-in map — a location is never invented. |
|
|
233
|
+
| "The workspace already has a `.claude/` directory, so setup is done." | A directory existing is not install state. The `## install-status` section is the only record of what this skill installed; read it before deciding. |
|
|
234
|
+
| "An existing file differs from the source — I'll pause and ask the user mid-apply whether to overwrite." | Step 6 already surfaced `installed · modified` with the warning that refreshing overwrites local edits. The user's tick is the consent. Mid-apply questions break the apply pass; they were replaced by the upfront status. |
|
|
235
|
+
| "`.pi/prompts/design-agent.md` doesn't exist, but `.claude/commands/design-agent.md` does — I'll symlink to the Claude file so the user gets the prompt." | That mixes runtimes silently and lets the source repo's claude-code tree drive a pi target. The source availability filter forbids it: items without a per-agent source are not offered at all. |
|
|
236
|
+
| "I'll skip the workspace analysis and just ask the user everything." | The analysis is what makes the override offer accurate. Asking blind produces an overrides file the user has to hand-correct afterwards. |
|
|
237
|
+
| "I'll record the full install detail in the overrides file too — one place is simpler." | Other skills load the overrides file on every run. Install detail belongs only in `agent-skills-setup.md`; padding the overrides file taxes every later session. |
|
|
238
|
+
| "There's an unfamiliar skill in `.claude/skills/` — the user must have forgotten to uncheck it, I'll remove it." | The removal scope rule exists exactly to prevent this. If the name is not in the agent-skills inventory or not in `## install-status`, it is user-owned; leave it alone and log it as skipped. |
|
|
239
|
+
| "The user wants a clean workspace — I'll prune custom hooks and unrelated MCP entries from `settings.json` too." | Setting-file edits are limited to agent-skills' own hook registrations. Touching anything else silently deletes work that does not belong to this skill. |
|
|
240
|
+
| "`/setup` and `/doctor` are useful — I'll install them into the workspace so the user can re-run them locally." | They are installer commands; they ship with the source agent-skills repo and act on workspaces from there. Installing them into a target duplicates the install surface and gives the target a path to manipulate itself. |
|
|
241
|
+
| "The recorded version differs from the current — I'll just refresh everything to the new source without showing the diff." | Conflicting upgrades (user-modified copy + source changed upstream) require the three-way diff to be shown in Step 6, with the row pre-unchecked. Refreshing silently overwrites work the user did between versions. |
|
|
242
|
+
| "The `.versions/<recorded>/` snapshot is missing — I'll pretend the installed copy matches the recorded source and refresh anyway." | A missing snapshot means we cannot compute the three-way diff. The skill must fall back to "treat installed copy as canonical" and surface the missing snapshot in the row's status so the user can decide — never pretend a diff exists. |
|
|
243
|
+
| "The workspace has no `version:` line — I'll silently stamp the current version and move on." | A pre-versioning workspace must be flagged in Step 4 and the user prompted: stamp the current version (assume copies match) or wipe and reinstall. Silent stamping hides a real decision. |
|
|
244
|
+
|
|
245
|
+
## Red Flags
|
|
246
|
+
|
|
247
|
+
- Files written to the target workspace before the Step 9 confirmation.
|
|
248
|
+
- The doctor preflight skipped on a workspace that already has prior install state.
|
|
249
|
+
- An install menu rendered as one undifferentiated list instead of the 18 grouped tables.
|
|
250
|
+
- A menu group rendered without per-row `Status` text, or with installed items not pre-checked.
|
|
251
|
+
- A `recommended` reply that silently unticks already-installed items instead of adding `★` items on top.
|
|
252
|
+
- `setup`, `doctor`, or `guided-workspace-setup` shown in the install menu — they are installer-only.
|
|
253
|
+
- An item offered for one agent whose per-agent source file does not exist (cross-tool substitution).
|
|
254
|
+
- A mid-apply prompt asking whether to overwrite a modified target file — that consent belongs in Step 6 / Step 9, not in Step 10.
|
|
255
|
+
- A target file or directory deleted whose name is not in the agent-skills inventory, or that is not recorded in `## install-status` and is not a symlink into the source repo.
|
|
256
|
+
- Edits to `settings.json` / env vars / MCP config beyond removing agent-skills' own hook registrations.
|
|
257
|
+
- An artifact installed to a path backed by neither the built-in map nor the agent's `*-setup.md`.
|
|
258
|
+
- `.ai/agent-skills-setup.md` left unchanged after artifacts were added or removed.
|
|
259
|
+
- Credentials or secrets written into either `.ai/` file.
|
|
260
|
+
- Every skill installed when the workspace needs a handful.
|
|
261
|
+
- An existing, differing target file overwritten without asking the user.
|
|
262
|
+
- A re-run that ignores the existing `## install-status` and reinstalls everything.
|
|
263
|
+
- The overrides file padded with install status, summaries, or prose instead of terse `key: value` sections.
|
|
264
|
+
- A re-run that detects a non-empty version delta but skips the "Changes since v<recorded> → v<current>" block in Step 9.
|
|
265
|
+
- A `conflicting upgrade` row pre-checked, or the three-way diff omitted for it.
|
|
266
|
+
- A pre-versioning workspace stamped with the current version without prompting the user first.
|
|
267
|
+
- The post-apply `version:` line not matching the package version from Step 2.
|
|
268
|
+
|
|
269
|
+
## Verification
|
|
270
|
+
|
|
271
|
+
After completing the workflow, confirm:
|
|
272
|
+
|
|
273
|
+
- [ ] The workspace path was validated as an existing directory before any write.
|
|
274
|
+
- [ ] The coding agent was confirmed, and `docs/<agent>-setup.md` was read for `opencode`/`pi` (or the built-in map used for `claude-code`).
|
|
275
|
+
- [ ] The doctor preflight ran on any workspace with prior install state, and its findings were resolved or explicitly skipped.
|
|
276
|
+
- [ ] Each install-menu group was presented as its own table + multi-select with `★` recommendations marked.
|
|
277
|
+
- [ ] Every row carried an explicit `Status` text (`installed · up to date`, `installed · outdated`, `installed · modified`, `not installed`, or `broken · skipped in preflight`) — never blank.
|
|
278
|
+
- [ ] Installed items were pre-checked `[x]`; not-installed items were pre-checked `[ ]`; `recommended` added `★` items on top of the pre-selection without unticking installed ones.
|
|
279
|
+
- [ ] Items lacking a per-agent source were filtered out of the menu — no cross-tool substitution offered.
|
|
280
|
+
- [ ] Apply ran without any overwrite-this-file prompt; ticked items refreshed unconditionally and unticked modified items were preserved.
|
|
281
|
+
- [ ] `setup`, `doctor`, and `guided-workspace-setup` were excluded from the install menu.
|
|
282
|
+
- [ ] Every selected artifact exists at its resolved target path; every deselected one was removed **only if** the removal-scope rule allowed it (in inventory + in install record / symlink-into-source).
|
|
283
|
+
- [ ] Out-of-inventory and unrecorded items found in the install-target directories were left untouched and logged under "Skipped — not owned by agent-skills".
|
|
284
|
+
- [ ] Settings-file edits were limited to agent-skills' own hook entries; no user keys, env vars, or third-party MCP entries were modified.
|
|
285
|
+
- [ ] `.ai/agent-skills-overrides.md` holds the agreed override sections as terse `key: value` lines, and nothing else.
|
|
286
|
+
- [ ] `.ai/agent-skills-setup.md` holds an up-to-date install record, including at least one `## doctor-runs` entry for this session, and a `version:` line in `## workspace-summary` that matches the package version from Step 2.
|
|
287
|
+
- [ ] When the version delta was non-empty, Step 9's summary led with the "Changes since v<recorded> → v<current>" block sourced from `CHANGELOG.md`.
|
|
288
|
+
- [ ] Every `conflicting upgrade` row was rendered with its three-way diff in Step 6 and was not pre-checked.
|
|
289
|
+
- [ ] A pre-versioning workspace was flagged in Step 4 and the user was prompted to stamp or wipe — not silently stamped.
|
|
290
|
+
- [ ] No broken symlinks remain in any of the scanned install-target directories.
|
|
291
|
+
- [ ] No YAML config references a removed persona name.
|
|
292
|
+
- [ ] No secrets were written to either `.ai/` file.
|
|
293
|
+
- [ ] The user confirmed the plan in Step 9 before any file was written.
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: idea-refine
|
|
3
|
+
description: Refines ideas iteratively. Refine ideas through structured divergent and convergent thinking. Use "idea-refine" or "ideate" to trigger.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Idea Refine
|
|
7
|
+
|
|
8
|
+
Refines raw ideas into sharp, actionable concepts worth building through structured divergent and convergent thinking.
|
|
9
|
+
|
|
10
|
+
## How It Works
|
|
11
|
+
|
|
12
|
+
1. **Understand & Expand (Divergent):** Restate the idea, ask sharpening questions, and generate variations.
|
|
13
|
+
2. **Evaluate & Converge:** Cluster ideas, stress-test them, and surface hidden assumptions.
|
|
14
|
+
3. **Sharpen & Ship:** Produce a concrete markdown one-pager moving work forward.
|
|
15
|
+
|
|
16
|
+
## Usage
|
|
17
|
+
|
|
18
|
+
This skill is primarily an interactive dialogue. Invoke it with an idea, and the agent will guide you through the process.
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# Optional: Initialize the ideas directory
|
|
22
|
+
bash /mnt/skills/user/idea-refine/scripts/idea-refine.sh
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
**Trigger Phrases:**
|
|
26
|
+
- "Help me refine this idea"
|
|
27
|
+
- "Ideate on [concept]"
|
|
28
|
+
- "Stress-test my plan"
|
|
29
|
+
|
|
30
|
+
## Output
|
|
31
|
+
|
|
32
|
+
The final output is a markdown one-pager saved to `docs/ideas/[idea-name].md` (after user confirmation), containing:
|
|
33
|
+
- Problem Statement
|
|
34
|
+
- Recommended Direction
|
|
35
|
+
- Key Assumptions
|
|
36
|
+
- MVP Scope
|
|
37
|
+
- Not Doing list
|
|
38
|
+
|
|
39
|
+
## Detailed Instructions
|
|
40
|
+
|
|
41
|
+
You are an ideation partner. Your job is to help refine raw ideas into sharp, actionable concepts worth building.
|
|
42
|
+
|
|
43
|
+
### Philosophy
|
|
44
|
+
|
|
45
|
+
- Simplicity is the ultimate sophistication. Push toward the simplest version that still solves the real problem.
|
|
46
|
+
- Start with the user experience, work backwards to technology.
|
|
47
|
+
- Say no to 1,000 things. Focus beats breadth.
|
|
48
|
+
- Challenge every assumption. "How it's usually done" is not a reason.
|
|
49
|
+
- Show people the future — don't just give them better horses.
|
|
50
|
+
- The parts you can't see should be as beautiful as the parts you can.
|
|
51
|
+
|
|
52
|
+
### Process
|
|
53
|
+
|
|
54
|
+
When the user invokes this skill with an idea (`$ARGUMENTS`), guide them through three phases. Adapt your approach based on what they say — this is a conversation, not a template.
|
|
55
|
+
|
|
56
|
+
#### Phase 1: Understand & Expand (Divergent)
|
|
57
|
+
|
|
58
|
+
**Goal:** Take the raw idea and open it up.
|
|
59
|
+
|
|
60
|
+
1. **Restate the idea** as a crisp "How Might We" problem statement. This forces clarity on what's actually being solved.
|
|
61
|
+
|
|
62
|
+
2. **Ask 3-5 sharpening questions** — no more. Focus on:
|
|
63
|
+
- Who is this for, specifically?
|
|
64
|
+
- What does success look like?
|
|
65
|
+
- What are the real constraints (time, tech, resources)?
|
|
66
|
+
- What's been tried before?
|
|
67
|
+
- Why now?
|
|
68
|
+
|
|
69
|
+
Use the `AskUserQuestion` tool to gather this input. Do NOT proceed until you understand who this is for and what success looks like.
|
|
70
|
+
|
|
71
|
+
3. **Generate 5-8 idea variations** using these lenses:
|
|
72
|
+
- **Inversion:** "What if we did the opposite?"
|
|
73
|
+
- **Constraint removal:** "What if budget/time/tech weren't factors?"
|
|
74
|
+
- **Audience shift:** "What if this were for [different user]?"
|
|
75
|
+
- **Combination:** "What if we merged this with [adjacent idea]?"
|
|
76
|
+
- **Simplification:** "What's the version that's 10x simpler?"
|
|
77
|
+
- **10x version:** "What would this look like at massive scale?"
|
|
78
|
+
- **Expert lens:** "What would [domain] experts find obvious that outsiders wouldn't?"
|
|
79
|
+
|
|
80
|
+
Push beyond what the user initially asked for. Create products people don't know they need yet.
|
|
81
|
+
|
|
82
|
+
**If running inside a codebase:** Use `Glob`, `Grep`, and `Read` to scan for relevant context — existing architecture, patterns, constraints, prior art. Ground your variations in what actually exists. Reference specific files and patterns when relevant.
|
|
83
|
+
|
|
84
|
+
Read `frameworks.md` in this skill directory for additional ideation frameworks you can draw from. Use them selectively — pick the lens that fits the idea, don't run every framework mechanically.
|
|
85
|
+
|
|
86
|
+
#### Phase 2: Evaluate & Converge
|
|
87
|
+
|
|
88
|
+
After the user reacts to Phase 1 (indicates which ideas resonate, pushes back, adds context), shift to convergent mode:
|
|
89
|
+
|
|
90
|
+
1. **Cluster** the ideas that resonated into 2-3 distinct directions. Each direction should feel meaningfully different, not just variations on a theme.
|
|
91
|
+
|
|
92
|
+
2. **Stress-test** each direction against three criteria:
|
|
93
|
+
- **User value:** Who benefits and how much? Is this a painkiller or a vitamin?
|
|
94
|
+
- **Feasibility:** What's the technical and resource cost? What's the hardest part?
|
|
95
|
+
- **Differentiation:** What makes this genuinely different? Would someone switch from their current solution?
|
|
96
|
+
|
|
97
|
+
Read `refinement-criteria.md` in this skill directory for the full evaluation rubric.
|
|
98
|
+
|
|
99
|
+
3. **Surface hidden assumptions.** For each direction, explicitly name:
|
|
100
|
+
- What you're betting is true (but haven't validated)
|
|
101
|
+
- What could kill this idea
|
|
102
|
+
- What you're choosing to ignore (and why that's okay for now)
|
|
103
|
+
|
|
104
|
+
This is where most ideation fails. Don't skip it.
|
|
105
|
+
|
|
106
|
+
**Be honest, not supportive.** If an idea is weak, say so with kindness. A good ideation partner is not a yes-machine. Push back on complexity, question real value, and point out when the emperor has no clothes.
|
|
107
|
+
|
|
108
|
+
#### Phase 3: Sharpen & Ship
|
|
109
|
+
|
|
110
|
+
Produce a concrete artifact — a markdown one-pager that moves work forward:
|
|
111
|
+
|
|
112
|
+
```markdown
|
|
113
|
+
# [Idea Name]
|
|
114
|
+
|
|
115
|
+
## Problem Statement
|
|
116
|
+
[One-sentence "How Might We" framing]
|
|
117
|
+
|
|
118
|
+
## Recommended Direction
|
|
119
|
+
[The chosen direction and why — 2-3 paragraphs max]
|
|
120
|
+
|
|
121
|
+
## Key Assumptions to Validate
|
|
122
|
+
- [ ] [Assumption 1 — how to test it]
|
|
123
|
+
- [ ] [Assumption 2 — how to test it]
|
|
124
|
+
- [ ] [Assumption 3 — how to test it]
|
|
125
|
+
|
|
126
|
+
## MVP Scope
|
|
127
|
+
[The minimum version that tests the core assumption. What's in, what's out.]
|
|
128
|
+
|
|
129
|
+
## Not Doing (and Why)
|
|
130
|
+
- [Thing 1] — [reason]
|
|
131
|
+
- [Thing 2] — [reason]
|
|
132
|
+
- [Thing 3] — [reason]
|
|
133
|
+
|
|
134
|
+
## Open Questions
|
|
135
|
+
- [Question that needs answering before building]
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
**The "Not Doing" list is arguably the most valuable part.** Focus is about saying no to good ideas. Make the trade-offs explicit.
|
|
139
|
+
|
|
140
|
+
Ask the user if they'd like to save this to `docs/ideas/[idea-name].md` (or a location of their choosing). Only save if they confirm.
|
|
141
|
+
|
|
142
|
+
### Anti-patterns to Avoid
|
|
143
|
+
|
|
144
|
+
- **Don't generate 20+ ideas.** Quality over quantity. 5-8 well-considered variations beat 20 shallow ones.
|
|
145
|
+
- **Don't be a yes-machine.** Push back on weak ideas with specificity and kindness.
|
|
146
|
+
- **Don't skip "who is this for."** Every good idea starts with a person and their problem.
|
|
147
|
+
- **Don't produce a plan without surfacing assumptions.** Untested assumptions are the #1 killer of good ideas.
|
|
148
|
+
- **Don't over-engineer the process.** Three phases, each doing one thing well. Resist adding steps.
|
|
149
|
+
- **Don't just list ideas — tell a story.** Each variation should have a reason it exists, not just be a bullet point.
|
|
150
|
+
- **Don't ignore the codebase.** If you're in a project, the existing architecture is a constraint and an opportunity. Use it.
|
|
151
|
+
|
|
152
|
+
### Tone
|
|
153
|
+
|
|
154
|
+
Direct, thoughtful, slightly provocative. You're a sharp thinking partner, not a facilitator reading from a script. Channel the energy of "that's interesting, but what if..." -- always pushing one step further without being exhausting.
|
|
155
|
+
|
|
156
|
+
Read `examples.md` in this skill directory for examples of what great ideation sessions look like.
|
|
157
|
+
|
|
158
|
+
## Red Flags
|
|
159
|
+
|
|
160
|
+
- Generating 20+ shallow variations instead of 5-8 considered ones
|
|
161
|
+
- Skipping the "who is this for" question
|
|
162
|
+
- No assumptions surfaced before committing to a direction
|
|
163
|
+
- Yes-machining weak ideas instead of pushing back with specificity
|
|
164
|
+
- Producing a plan without a "Not Doing" list
|
|
165
|
+
- Ignoring existing codebase constraints when ideating inside a project
|
|
166
|
+
- Jumping straight to Phase 3 output without running Phases 1 and 2
|
|
167
|
+
|
|
168
|
+
## Verification
|
|
169
|
+
|
|
170
|
+
After completing an ideation session:
|
|
171
|
+
|
|
172
|
+
- [ ] A clear "How Might We" problem statement exists
|
|
173
|
+
- [ ] The target user and success criteria are defined
|
|
174
|
+
- [ ] Multiple directions were explored, not just the first idea
|
|
175
|
+
- [ ] Hidden assumptions are explicitly listed with validation strategies
|
|
176
|
+
- [ ] A "Not Doing" list makes trade-offs explicit
|
|
177
|
+
- [ ] The output is a concrete artifact (markdown one-pager), not just conversation
|
|
178
|
+
- [ ] The user confirmed the final direction before any implementation work
|