product-design-ceo-orchestrator 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/LICENSE +21 -0
- package/README.md +211 -0
- package/SKILL.md +116 -0
- package/bin/product-design-ceo-orchestrator.js +106 -0
- package/lib/install.js +96 -0
- package/package.json +50 -0
- package/references/kb-policy.md +59 -0
- package/references/orchestration-model.md +116 -0
- package/references/role-catalog.md +134 -0
- package/references/workspace-structure.md +102 -0
- package/skill.json +32 -0
- package/tests/pressure-scenarios.md +164 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Kai Zhang
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
# Product Design CEO Orchestrator
|
|
2
|
+
|
|
3
|
+
A reusable agent skill for product-management and product-design work that benefits from CEO-style orchestration without unnecessary ceremony.
|
|
4
|
+
|
|
5
|
+
The skill helps an agent decide when to answer directly, when to use a few product-role perspectives, and when to create a full multi-phase workspace for durable product artifacts such as PRDs, feature proposals, UI demo plans, competitor research, product reviews, and roadmap strategy.
|
|
6
|
+
|
|
7
|
+
## What This Skill Optimizes For
|
|
8
|
+
|
|
9
|
+
- correct scope before execution
|
|
10
|
+
- the lightest useful workflow
|
|
11
|
+
- explicit role selection
|
|
12
|
+
- evidence-aware product recommendations
|
|
13
|
+
- final integrated artifacts instead of scattered notes
|
|
14
|
+
- clear validation before claiming completion
|
|
15
|
+
|
|
16
|
+
## When It Activates
|
|
17
|
+
|
|
18
|
+
Use this skill when the user asks for durable product-design work such as:
|
|
19
|
+
|
|
20
|
+
- PRDs and requirements
|
|
21
|
+
- feature design and user flows
|
|
22
|
+
- product strategy and roadmap thinking
|
|
23
|
+
- competitor or market research
|
|
24
|
+
- user research synthesis
|
|
25
|
+
- product reviews
|
|
26
|
+
- UI demo or prototype planning
|
|
27
|
+
- turning a product idea into execution-ready artifacts
|
|
28
|
+
|
|
29
|
+
For tiny copy tweaks or narrow UX opinions, the skill intentionally downgrades to a lightweight manager-only response.
|
|
30
|
+
|
|
31
|
+
## Repository Layout
|
|
32
|
+
|
|
33
|
+
```text
|
|
34
|
+
.
|
|
35
|
+
├── SKILL.md
|
|
36
|
+
├── README.md
|
|
37
|
+
├── LICENSE
|
|
38
|
+
├── package.json
|
|
39
|
+
├── skill.json
|
|
40
|
+
├── bin/
|
|
41
|
+
│ └── product-design-ceo-orchestrator.js
|
|
42
|
+
├── lib/
|
|
43
|
+
│ └── install.js
|
|
44
|
+
├── references/
|
|
45
|
+
│ ├── kb-policy.md
|
|
46
|
+
│ ├── orchestration-model.md
|
|
47
|
+
│ ├── role-catalog.md
|
|
48
|
+
│ └── workspace-structure.md
|
|
49
|
+
└── tests/
|
|
50
|
+
├── install.test.js
|
|
51
|
+
└── pressure-scenarios.md
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Install
|
|
55
|
+
|
|
56
|
+
### npm / npx
|
|
57
|
+
|
|
58
|
+
Install explicitly with `npx`:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
npx product-design-ceo-orchestrator install --ai codex
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Supported explicit targets:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
npx product-design-ceo-orchestrator install --ai codex
|
|
68
|
+
npx product-design-ceo-orchestrator install --ai claude
|
|
69
|
+
npx product-design-ceo-orchestrator install --ai cursor
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Overwrite an existing local copy:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
npx product-design-ceo-orchestrator install --ai codex --force
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Install into a custom agent skills directory:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
npx product-design-ceo-orchestrator install \
|
|
82
|
+
--target ~/.my-agent/skills/product-design-ceo-orchestrator
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Preview the target path without writing files:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
npx product-design-ceo-orchestrator install --ai codex --dry-run
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Codex
|
|
92
|
+
|
|
93
|
+
Manual Git install for Codex:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
mkdir -p ~/.codex/skills
|
|
97
|
+
git clone https://github.com/burpeepoo/product-design-ceo-orchestrator.git \
|
|
98
|
+
~/.codex/skills/product-design-ceo-orchestrator
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Restart Codex or open a new session after installation.
|
|
102
|
+
|
|
103
|
+
### Claude Code
|
|
104
|
+
|
|
105
|
+
Manual Git install for Claude Code:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
mkdir -p ~/.claude/skills
|
|
109
|
+
git clone https://github.com/burpeepoo/product-design-ceo-orchestrator.git \
|
|
110
|
+
~/.claude/skills/product-design-ceo-orchestrator
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Other Agent Runtimes
|
|
114
|
+
|
|
115
|
+
If your agent supports local skills, copy or clone this repository into that runtime's skills directory. The required entry point is:
|
|
116
|
+
|
|
117
|
+
```text
|
|
118
|
+
SKILL.md
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
The `references/` and `tests/` folders should stay next to `SKILL.md`.
|
|
122
|
+
|
|
123
|
+
## Update
|
|
124
|
+
|
|
125
|
+
If installed with npm / npx, re-run the explicit install with `--force`:
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
npx product-design-ceo-orchestrator@latest install --ai codex --force
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
If installed with Git, update an installed copy with:
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
cd ~/.codex/skills/product-design-ceo-orchestrator
|
|
135
|
+
git pull --ff-only
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
Use the equivalent path for other agent runtimes.
|
|
139
|
+
|
|
140
|
+
## Usage
|
|
141
|
+
|
|
142
|
+
Ask naturally for product-design help. Examples:
|
|
143
|
+
|
|
144
|
+
```text
|
|
145
|
+
Draft a PRD for calendar conflict reminders.
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
```text
|
|
149
|
+
Review this product idea quickly. Do not make a big framework.
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
```text
|
|
153
|
+
Design a UI demo for a new family weekly report experience. I need something execution-ready.
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
The skill chooses among three operating modes:
|
|
157
|
+
|
|
158
|
+
| Mode | Use when | Output |
|
|
159
|
+
|---|---|---|
|
|
160
|
+
| None | quick critique, copy, narrow UX suggestion | chat answer |
|
|
161
|
+
| Light | medium PRD, proposal, review, flow, research summary | one integrated Markdown artifact |
|
|
162
|
+
| Full | complex work with roles, phases, KB, artifacts, or handoff | workspace with `outputs/final.md` |
|
|
163
|
+
|
|
164
|
+
## Validation
|
|
165
|
+
|
|
166
|
+
The skill includes pressure scenarios in `tests/pressure-scenarios.md`. Use them when changing the skill to verify it still:
|
|
167
|
+
|
|
168
|
+
- avoids over-orchestration
|
|
169
|
+
- uses role perspectives only when they add distinct value
|
|
170
|
+
- records KB and evidence status when needed
|
|
171
|
+
- backs current market or competitor claims with sources
|
|
172
|
+
- finishes durable work with one integrated recommendation
|
|
173
|
+
|
|
174
|
+
Basic static checks:
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
npm test
|
|
178
|
+
npm pack --dry-run
|
|
179
|
+
test -s SKILL.md
|
|
180
|
+
test -s references/orchestration-model.md
|
|
181
|
+
test -s references/role-catalog.md
|
|
182
|
+
test -s references/workspace-structure.md
|
|
183
|
+
test -s references/kb-policy.md
|
|
184
|
+
test -s tests/pressure-scenarios.md
|
|
185
|
+
rg -n "description: Use when|Quick Decision Table|Role Selection Matrix|Workspace Modes|Pressure Scenarios" .
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## Publishing Workflow
|
|
189
|
+
|
|
190
|
+
Future updates should be committed and pushed to this repository:
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
git status -sb
|
|
194
|
+
git add SKILL.md README.md LICENSE package.json skill.json .gitignore bin lib references tests
|
|
195
|
+
git commit -m "update product design ceo orchestrator skill"
|
|
196
|
+
git push
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
For npm releases:
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
npm test
|
|
203
|
+
npm pack --dry-run
|
|
204
|
+
npm publish
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
For larger behavior changes, update `tests/pressure-scenarios.md` first so the expected behavior is explicit before editing the skill.
|
|
208
|
+
|
|
209
|
+
## License
|
|
210
|
+
|
|
211
|
+
MIT. See `LICENSE`.
|
package/SKILL.md
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: product-design-ceo-orchestrator
|
|
3
|
+
description: Use when the user asks for durable product-design work such as PRDs, requirements, feature design, product strategy, competitor or market research, user research, product review, UI demo planning, prototype planning, roadmap thinking, or turning a product idea into execution-ready artifacts.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Product Design CEO Orchestrator
|
|
7
|
+
|
|
8
|
+
Act as the smallest useful product leadership system before acting as an individual contributor. The goal is not to maximize ceremony; it is to preserve user intent, gather the right evidence, choose the right roles, and finish with one integrated artifact.
|
|
9
|
+
|
|
10
|
+
## Start
|
|
11
|
+
|
|
12
|
+
1. Respond in the language the user is using unless they ask otherwise.
|
|
13
|
+
2. Classify the request before doing product work: simple, medium, or complex.
|
|
14
|
+
3. State the orchestration decision briefly using the first response templates below.
|
|
15
|
+
4. If durable, plan roles, phases, KB needs, workspace mode, and final artifact before executing.
|
|
16
|
+
5. Default to one agent executing phases in order. Suggest parallel or sub-agent execution only when tasks are independent and the environment supports it clearly.
|
|
17
|
+
|
|
18
|
+
## Quick Decision Table
|
|
19
|
+
|
|
20
|
+
| Request shape | Classification | Workspace | Roles | First action | Final output |
|
|
21
|
+
|---|---|---|---|---|---|
|
|
22
|
+
| Copy tweak, short UX opinion, one-screen critique, narrow wording | Simple | None | Manager only | Answer directly | Chat answer unless files requested |
|
|
23
|
+
| PRD draft, feature proposal, user flow refinement, small product review | Medium | Light document when useful | Manager plus 1-3 role perspectives | State selected perspectives, then execute | One integrated Markdown artifact |
|
|
24
|
+
| UI demo, prototype plan, new product concept, strategy with implementation impact, ambiguous market or user problem | Complex | Full workspace | Formal selected roles | Create orchestration plan first | `outputs/final.md` plus artifacts |
|
|
25
|
+
|
|
26
|
+
Use multi-role orchestration when the task needs at least two of: user understanding, market or competitor evidence, requirement definition, interaction or design output, technical review, data or ops analysis, QA or acceptance, and final synthesis.
|
|
27
|
+
|
|
28
|
+
Always create a final integration phase for complex tasks so outputs do not remain scattered.
|
|
29
|
+
|
|
30
|
+
## First Response Templates
|
|
31
|
+
|
|
32
|
+
Use the lightest template that fits.
|
|
33
|
+
|
|
34
|
+
Simple:
|
|
35
|
+
|
|
36
|
+
> This is narrow enough to handle directly. I will use the manager lens only and keep the answer focused.
|
|
37
|
+
|
|
38
|
+
Medium:
|
|
39
|
+
|
|
40
|
+
> I will treat this as a medium product-design task: use a few role perspectives in sequence, avoid a heavy workspace unless useful, and end with one integrated artifact. Selected roles: [roles]. KB needed: [sources or assumptions].
|
|
41
|
+
|
|
42
|
+
Complex:
|
|
43
|
+
|
|
44
|
+
> I will treat this as a complex product-design task: first create the orchestration plan, then execute phases in order, and finish with one integrated result plus paths. Selected roles: [roles]. Workspace mode: full. KB needed: [sources or assumptions].
|
|
45
|
+
|
|
46
|
+
When missing information materially changes the answer, ask 1-3 concise questions before execution. Do not block on minor gaps; mark assumptions and continue.
|
|
47
|
+
|
|
48
|
+
## Over-Orchestration Red Flags
|
|
49
|
+
|
|
50
|
+
Stop and downgrade the workflow when any of these appear:
|
|
51
|
+
|
|
52
|
+
- The user asked for a quick wording, small critique, or narrow opinion.
|
|
53
|
+
- The answer would fit in one concise response and no durable artifact was requested.
|
|
54
|
+
- Role files would restate obvious perspectives without adding evidence or decisions.
|
|
55
|
+
- A workspace would create more navigation burden than reusable value.
|
|
56
|
+
- The user explicitly asks to keep it lightweight or fast.
|
|
57
|
+
- You are creating phases because the skill says "CEO" rather than because the task needs them.
|
|
58
|
+
|
|
59
|
+
## Sub-Skill Split Criteria
|
|
60
|
+
|
|
61
|
+
Keep this as one skill unless repeated use shows a specific section needs independent triggering. Split into a sub-skill only when all are true:
|
|
62
|
+
|
|
63
|
+
- The section has a distinct trigger that users or agents would search for directly.
|
|
64
|
+
- The section has its own workflow, inputs, outputs, and validation.
|
|
65
|
+
- Keeping it here makes the main skill harder to use.
|
|
66
|
+
- Pressure scenarios show agents repeatedly misuse or skip that section.
|
|
67
|
+
|
|
68
|
+
Likely future split candidates are competitor research, UI demo orchestration, PRD writing, and skill pressure testing. Do not split them preemptively.
|
|
69
|
+
|
|
70
|
+
## Workflow
|
|
71
|
+
|
|
72
|
+
1. Classify the request: simple / medium / complex.
|
|
73
|
+
2. State the orchestration decision briefly:
|
|
74
|
+
- roles needed
|
|
75
|
+
- phases needed
|
|
76
|
+
- KB needed
|
|
77
|
+
- execution mode
|
|
78
|
+
- missing inputs, if any
|
|
79
|
+
3. Choose workspace mode from `references/workspace-structure.md`: none / light / full.
|
|
80
|
+
4. Choose roles from `references/role-catalog.md`; create role boundary files only for selected roles in full workspace mode.
|
|
81
|
+
5. For medium work, keep the orchestration plan in the response or light-mode `README.md`. For complex work, create `orchestration-plan.md` with phases, tasks, dependencies, expected outputs, and final synthesis criteria.
|
|
82
|
+
6. Execute in order: understand -> define -> design or write -> review -> final integration.
|
|
83
|
+
7. Save durable final output to the selected output path. In full workspace mode, use `outputs/final.md` and put non-Markdown artifacts under `outputs/artifacts/`.
|
|
84
|
+
8. Update `reflections.md` only for durable tasks where reusable lessons or follow-ups emerged.
|
|
85
|
+
|
|
86
|
+
## References
|
|
87
|
+
|
|
88
|
+
- Read `references/orchestration-model.md` when deciding whether to split roles/tasks.
|
|
89
|
+
- Read `references/role-catalog.md` when creating role files or assigning work.
|
|
90
|
+
- Read `references/workspace-structure.md` before creating directories.
|
|
91
|
+
- Read `references/kb-policy.md` before asking for files, folders, links, screenshots, data, or existing docs.
|
|
92
|
+
- Use `tests/pressure-scenarios.md` when verifying edits to this skill or checking whether it resists over-orchestration.
|
|
93
|
+
|
|
94
|
+
## Output Contract
|
|
95
|
+
|
|
96
|
+
Every durable task must end with:
|
|
97
|
+
|
|
98
|
+
- orchestration decision
|
|
99
|
+
- roles and phases used
|
|
100
|
+
- KB used or requested
|
|
101
|
+
- final artifact summary
|
|
102
|
+
- output paths, or an explicit note that no files were created
|
|
103
|
+
- unresolved risks or follow-ups
|
|
104
|
+
|
|
105
|
+
## Final Validation Checklist
|
|
106
|
+
|
|
107
|
+
Before claiming a durable task is complete, verify:
|
|
108
|
+
|
|
109
|
+
- User goal is restated and the final artifact answers it.
|
|
110
|
+
- Classification, workspace mode, selected roles, and phases are recorded.
|
|
111
|
+
- Facts, assumptions, recommendations, and evidence gaps are separated.
|
|
112
|
+
- Current market or competitor claims are backed by browsing or user-provided sources.
|
|
113
|
+
- The final integration resolves conflicts between role outputs instead of pasting them together.
|
|
114
|
+
- Non-goals, risks, and follow-ups are explicit.
|
|
115
|
+
- Output paths exist when files were promised.
|
|
116
|
+
- The response names any validation that was not performed.
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const path = require("node:path");
|
|
4
|
+
const { copySkill, resolveInstallDir, AI_TARGETS } = require("../lib/install");
|
|
5
|
+
const packageJson = require("../package.json");
|
|
6
|
+
|
|
7
|
+
function usage() {
|
|
8
|
+
const supported = Object.keys(AI_TARGETS).join("|");
|
|
9
|
+
return `Product Design CEO Orchestrator
|
|
10
|
+
|
|
11
|
+
Usage:
|
|
12
|
+
product-design-ceo-orchestrator install --ai ${supported} [--force]
|
|
13
|
+
product-design-ceo-orchestrator install --target <directory> [--force]
|
|
14
|
+
product-design-ceo-orchestrator --help
|
|
15
|
+
product-design-ceo-orchestrator --version
|
|
16
|
+
|
|
17
|
+
Examples:
|
|
18
|
+
npx product-design-ceo-orchestrator install --ai codex
|
|
19
|
+
npx product-design-ceo-orchestrator install --ai claude --force
|
|
20
|
+
npx product-design-ceo-orchestrator install --target ~/.my-agent/skills/product-design-ceo-orchestrator
|
|
21
|
+
`;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function parseArgs(argv) {
|
|
25
|
+
const options = {
|
|
26
|
+
command: null,
|
|
27
|
+
ai: null,
|
|
28
|
+
targetDir: null,
|
|
29
|
+
force: false,
|
|
30
|
+
dryRun: false,
|
|
31
|
+
help: false,
|
|
32
|
+
version: false,
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
for (let index = 0; index < argv.length; index += 1) {
|
|
36
|
+
const arg = argv[index];
|
|
37
|
+
if (index === 0 && !arg.startsWith("-")) {
|
|
38
|
+
options.command = arg;
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
if (arg === "--ai") {
|
|
43
|
+
options.ai = argv[++index];
|
|
44
|
+
} else if (arg === "--target") {
|
|
45
|
+
options.targetDir = argv[++index];
|
|
46
|
+
} else if (arg === "--force") {
|
|
47
|
+
options.force = true;
|
|
48
|
+
} else if (arg === "--dry-run") {
|
|
49
|
+
options.dryRun = true;
|
|
50
|
+
} else if (arg === "--help" || arg === "-h") {
|
|
51
|
+
options.help = true;
|
|
52
|
+
} else if (arg === "--version" || arg === "-v") {
|
|
53
|
+
options.version = true;
|
|
54
|
+
} else {
|
|
55
|
+
throw new Error(`Unknown argument: ${arg}`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
return options;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
function main(argv = process.argv.slice(2)) {
|
|
63
|
+
const options = parseArgs(argv);
|
|
64
|
+
|
|
65
|
+
if (options.version) {
|
|
66
|
+
console.log(packageJson.version);
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
if (options.help || !options.command) {
|
|
71
|
+
console.log(usage());
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
if (options.command !== "install") {
|
|
76
|
+
throw new Error(`Unknown command: ${options.command}`);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
const destination = resolveInstallDir({
|
|
80
|
+
ai: options.ai,
|
|
81
|
+
targetDir: options.targetDir,
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
if (options.dryRun) {
|
|
85
|
+
console.log(`Would install to: ${destination}`);
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
const result = copySkill({
|
|
90
|
+
packageRoot: path.resolve(__dirname, ".."),
|
|
91
|
+
destination,
|
|
92
|
+
force: options.force,
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
console.log(`Installed product-design-ceo-orchestrator to ${result.destination}`);
|
|
96
|
+
console.log(`Copied ${result.files.length} files.`);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
try {
|
|
100
|
+
main();
|
|
101
|
+
} catch (error) {
|
|
102
|
+
console.error(error.message);
|
|
103
|
+
console.error("");
|
|
104
|
+
console.error(usage());
|
|
105
|
+
process.exitCode = 1;
|
|
106
|
+
}
|
package/lib/install.js
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
const fs = require("node:fs");
|
|
2
|
+
const os = require("node:os");
|
|
3
|
+
const path = require("node:path");
|
|
4
|
+
|
|
5
|
+
const SKILL_NAME = "product-design-ceo-orchestrator";
|
|
6
|
+
|
|
7
|
+
const AI_TARGETS = {
|
|
8
|
+
codex: [".codex", "skills"],
|
|
9
|
+
claude: [".claude", "skills"],
|
|
10
|
+
cursor: [".cursor", "skills"],
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
const INSTALL_ENTRIES = [
|
|
14
|
+
"SKILL.md",
|
|
15
|
+
"README.md",
|
|
16
|
+
"LICENSE",
|
|
17
|
+
"skill.json",
|
|
18
|
+
path.join("references", "kb-policy.md"),
|
|
19
|
+
path.join("references", "orchestration-model.md"),
|
|
20
|
+
path.join("references", "role-catalog.md"),
|
|
21
|
+
path.join("references", "workspace-structure.md"),
|
|
22
|
+
path.join("tests", "pressure-scenarios.md"),
|
|
23
|
+
];
|
|
24
|
+
|
|
25
|
+
function expandHome(input, homeDir = os.homedir()) {
|
|
26
|
+
if (input === "~") {
|
|
27
|
+
return homeDir;
|
|
28
|
+
}
|
|
29
|
+
if (input.startsWith("~/")) {
|
|
30
|
+
return path.join(homeDir, input.slice(2));
|
|
31
|
+
}
|
|
32
|
+
return input;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function resolveInstallDir({ ai, targetDir, homeDir = os.homedir() }) {
|
|
36
|
+
if (targetDir) {
|
|
37
|
+
return path.resolve(expandHome(targetDir, homeDir));
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
if (!ai) {
|
|
41
|
+
throw new Error("Pass --ai codex|claude|cursor or --target <directory>.");
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
const normalized = ai.toLowerCase();
|
|
45
|
+
const parts = AI_TARGETS[normalized];
|
|
46
|
+
|
|
47
|
+
if (!parts) {
|
|
48
|
+
throw new Error(
|
|
49
|
+
`Unsupported --ai "${ai}". Supported: ${Object.keys(AI_TARGETS).join(", ")}.`,
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return path.join(homeDir, ...parts, SKILL_NAME);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function copyFileWithParents(source, destination) {
|
|
57
|
+
fs.mkdirSync(path.dirname(destination), { recursive: true });
|
|
58
|
+
fs.copyFileSync(source, destination);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function copySkill({ packageRoot, destination, force = false }) {
|
|
62
|
+
const sourceSkill = path.join(packageRoot, "SKILL.md");
|
|
63
|
+
if (!fs.existsSync(sourceSkill)) {
|
|
64
|
+
throw new Error(`Cannot find SKILL.md in package root: ${packageRoot}`);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
if (fs.existsSync(destination)) {
|
|
68
|
+
if (!force) {
|
|
69
|
+
throw new Error(
|
|
70
|
+
`${destination} already exists. Re-run with --force to overwrite it.`,
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
fs.rmSync(destination, { recursive: true, force: true });
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
for (const entry of INSTALL_ENTRIES) {
|
|
77
|
+
const source = path.join(packageRoot, entry);
|
|
78
|
+
if (!fs.existsSync(source)) {
|
|
79
|
+
throw new Error(`Missing package file: ${entry}`);
|
|
80
|
+
}
|
|
81
|
+
copyFileWithParents(source, path.join(destination, entry));
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
return {
|
|
85
|
+
destination,
|
|
86
|
+
files: INSTALL_ENTRIES.slice(),
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
module.exports = {
|
|
91
|
+
AI_TARGETS,
|
|
92
|
+
INSTALL_ENTRIES,
|
|
93
|
+
SKILL_NAME,
|
|
94
|
+
copySkill,
|
|
95
|
+
resolveInstallDir,
|
|
96
|
+
};
|
package/package.json
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "product-design-ceo-orchestrator",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Installable agent skill for product-design orchestration, PRDs, strategy, research, product reviews, and UI demo planning.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": "Kai Zhang",
|
|
7
|
+
"homepage": "https://github.com/burpeepoo/product-design-ceo-orchestrator#readme",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/burpeepoo/product-design-ceo-orchestrator.git"
|
|
11
|
+
},
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/burpeepoo/product-design-ceo-orchestrator/issues"
|
|
14
|
+
},
|
|
15
|
+
"bin": {
|
|
16
|
+
"product-design-ceo-orchestrator": "bin/product-design-ceo-orchestrator.js",
|
|
17
|
+
"pdco": "bin/product-design-ceo-orchestrator.js"
|
|
18
|
+
},
|
|
19
|
+
"files": [
|
|
20
|
+
"bin/",
|
|
21
|
+
"lib/",
|
|
22
|
+
"references/",
|
|
23
|
+
"tests/pressure-scenarios.md",
|
|
24
|
+
"SKILL.md",
|
|
25
|
+
"README.md",
|
|
26
|
+
"LICENSE",
|
|
27
|
+
"skill.json"
|
|
28
|
+
],
|
|
29
|
+
"scripts": {
|
|
30
|
+
"test": "node --test tests/install.test.js",
|
|
31
|
+
"pack:check": "npm pack --dry-run"
|
|
32
|
+
},
|
|
33
|
+
"keywords": [
|
|
34
|
+
"agent-skill",
|
|
35
|
+
"codex",
|
|
36
|
+
"claude",
|
|
37
|
+
"product-design",
|
|
38
|
+
"product-management",
|
|
39
|
+
"prd",
|
|
40
|
+
"requirements",
|
|
41
|
+
"strategy",
|
|
42
|
+
"ui-demo"
|
|
43
|
+
],
|
|
44
|
+
"engines": {
|
|
45
|
+
"node": ">=18"
|
|
46
|
+
},
|
|
47
|
+
"publishConfig": {
|
|
48
|
+
"access": "public"
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Knowledge Base Policy
|
|
2
|
+
|
|
3
|
+
KB means the material that should inform the product-design work.
|
|
4
|
+
|
|
5
|
+
## Decide KB Needs
|
|
6
|
+
|
|
7
|
+
Ask for or search local context when the task depends on:
|
|
8
|
+
|
|
9
|
+
- existing product docs
|
|
10
|
+
- screenshots or UI flows
|
|
11
|
+
- user feedback
|
|
12
|
+
- analytics or funnel data
|
|
13
|
+
- competitor references
|
|
14
|
+
- brand/design system
|
|
15
|
+
- technical constraints
|
|
16
|
+
- existing code or repo behavior
|
|
17
|
+
- prior decisions or roadmaps
|
|
18
|
+
|
|
19
|
+
## Ask the User When
|
|
20
|
+
|
|
21
|
+
Ask 1-3 concise questions when missing information changes the output materially.
|
|
22
|
+
|
|
23
|
+
Examples:
|
|
24
|
+
- target user is unknown
|
|
25
|
+
- product stage is unknown
|
|
26
|
+
- output format is unclear
|
|
27
|
+
- source docs or screenshots are required
|
|
28
|
+
- competitor list is required and browsing is not enough
|
|
29
|
+
- implementation platform matters
|
|
30
|
+
|
|
31
|
+
Do not block on minor gaps. Mark assumptions and continue.
|
|
32
|
+
|
|
33
|
+
## Record KB Status
|
|
34
|
+
|
|
35
|
+
In `kb/README.md`, record:
|
|
36
|
+
|
|
37
|
+
- needed sources
|
|
38
|
+
- provided sources
|
|
39
|
+
- sources used
|
|
40
|
+
- sources intentionally not used
|
|
41
|
+
- open evidence gaps
|
|
42
|
+
|
|
43
|
+
## Use Evidence Carefully
|
|
44
|
+
|
|
45
|
+
- Do not claim current market facts without browsing or user-provided sources.
|
|
46
|
+
- Do not treat a local folder path as permission to summarize everything unless the user allowed it.
|
|
47
|
+
- Distinguish facts, assumptions, and recommendations.
|
|
48
|
+
- For screenshots/images, state what was visually inferred.
|
|
49
|
+
- For data files, state metric definitions, timeframe, and uncertainty.
|
|
50
|
+
|
|
51
|
+
## Output Evidence
|
|
52
|
+
|
|
53
|
+
Final output should include:
|
|
54
|
+
|
|
55
|
+
- "Used KB" list
|
|
56
|
+
- "Assumptions" list
|
|
57
|
+
- "Evidence gaps" list
|
|
58
|
+
- "What to collect next" when relevant
|
|
59
|
+
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# Orchestration Model
|
|
2
|
+
|
|
3
|
+
## Goal
|
|
4
|
+
|
|
5
|
+
Act like a product CEO/manager before acting like an individual contributor. Decide the smallest useful team and workflow for the user's product-design request.
|
|
6
|
+
|
|
7
|
+
## Decision Table
|
|
8
|
+
|
|
9
|
+
| Signal | Use | Do not use |
|
|
10
|
+
|---|---|---|
|
|
11
|
+
| User asks for quick wording, a short critique, or a narrow decision | Simple | Medium or complex ceremony |
|
|
12
|
+
| User asks for a PRD, feature proposal, flow, product review, or roadmap slice | Medium | Full workspace unless files or phases matter |
|
|
13
|
+
| User asks for UI demo, prototype, new product concept, broad strategy, or ambiguous problem framing | Complex | Single-role answer |
|
|
14
|
+
| User provides or requests source docs, screenshots, analytics, competitors, or implementation constraints | KB-aware medium or complex | Evidence-free recommendation |
|
|
15
|
+
| User explicitly says "keep it light", "quick", or "no big process" | Downgrade one level | Forced role split |
|
|
16
|
+
|
|
17
|
+
If two signals conflict, preserve the user's explicit preference first, then choose the smallest workflow that can still produce a correct answer.
|
|
18
|
+
|
|
19
|
+
## Complexity
|
|
20
|
+
|
|
21
|
+
### Simple
|
|
22
|
+
|
|
23
|
+
Use one agent and no workspace unless the user asks for files.
|
|
24
|
+
|
|
25
|
+
Examples:
|
|
26
|
+
- button copy
|
|
27
|
+
- short UX critique
|
|
28
|
+
- one-screen wording
|
|
29
|
+
- quick product opinion
|
|
30
|
+
|
|
31
|
+
Still state why no multi-role split is needed, but keep it to one sentence.
|
|
32
|
+
|
|
33
|
+
### Medium
|
|
34
|
+
|
|
35
|
+
Use several role perspectives but execute sequentially in one agent.
|
|
36
|
+
|
|
37
|
+
Examples:
|
|
38
|
+
- PRD draft
|
|
39
|
+
- feature proposal
|
|
40
|
+
- small competitor scan
|
|
41
|
+
- user flow refinement
|
|
42
|
+
- product review with clear context
|
|
43
|
+
|
|
44
|
+
Recommended phases:
|
|
45
|
+
1. understand
|
|
46
|
+
2. define
|
|
47
|
+
3. design or write
|
|
48
|
+
4. review
|
|
49
|
+
5. final synthesis
|
|
50
|
+
|
|
51
|
+
Use a light document when the result should be reusable. Do not create role files unless the task grows into complex work.
|
|
52
|
+
|
|
53
|
+
### Complex
|
|
54
|
+
|
|
55
|
+
Use formal roles, phase folders, explicit KB, and final integration.
|
|
56
|
+
|
|
57
|
+
Examples:
|
|
58
|
+
- UI Demo or prototype
|
|
59
|
+
- new product concept
|
|
60
|
+
- large PRD
|
|
61
|
+
- ambiguous market/user problem
|
|
62
|
+
- strategy with implementation implications
|
|
63
|
+
- work that needs design + technical + review perspectives
|
|
64
|
+
|
|
65
|
+
Default phases:
|
|
66
|
+
1. Understand problem: user, scenario, market, competitor, constraints.
|
|
67
|
+
2. Define product: goals, scope, requirements, acceptance criteria.
|
|
68
|
+
3. Design output: IA, flow, UI, prototype, PRD, demo, or artifact.
|
|
69
|
+
4. Review: product goal fit, technical feasibility, risks.
|
|
70
|
+
5. Final integration: one CEO-readable final result and paths.
|
|
71
|
+
|
|
72
|
+
## Split Rules
|
|
73
|
+
|
|
74
|
+
Split into roles when:
|
|
75
|
+
- evidence and design judgment are both needed
|
|
76
|
+
- solution quality depends on multiple viewpoints
|
|
77
|
+
- output will be reviewed or implemented
|
|
78
|
+
- user asks for a demo, PRD, competitive analysis, roadmap, or prototype
|
|
79
|
+
|
|
80
|
+
Do not split when:
|
|
81
|
+
- one narrow answer is enough
|
|
82
|
+
- user explicitly wants speed over rigor
|
|
83
|
+
- role output would be fake busywork
|
|
84
|
+
- selected roles cannot produce distinct decisions or evidence
|
|
85
|
+
- the "role" would only rename the same reasoning
|
|
86
|
+
|
|
87
|
+
## Execution Mode
|
|
88
|
+
|
|
89
|
+
Default: one agent executes roles sequentially and labels each role's contribution.
|
|
90
|
+
|
|
91
|
+
Suggest parallel/sub-agent execution only when:
|
|
92
|
+
- tasks are independent
|
|
93
|
+
- the environment supports subagents
|
|
94
|
+
- the user wants speed
|
|
95
|
+
- each subagent can get clear context and output contract
|
|
96
|
+
|
|
97
|
+
## Required CEO Decisions
|
|
98
|
+
|
|
99
|
+
Before executing, produce:
|
|
100
|
+
- task classification
|
|
101
|
+
- selected roles
|
|
102
|
+
- selected phases
|
|
103
|
+
- KB needed
|
|
104
|
+
- workspace mode and directory plan
|
|
105
|
+
- output artifacts
|
|
106
|
+
- assumptions and open questions
|
|
107
|
+
|
|
108
|
+
## First Response Shape
|
|
109
|
+
|
|
110
|
+
Keep the first response proportional to the task:
|
|
111
|
+
|
|
112
|
+
- Simple: one sentence explaining direct handling, then answer.
|
|
113
|
+
- Medium: one short paragraph naming roles, KB status, and expected artifact.
|
|
114
|
+
- Complex: a concise plan with roles, phases, workspace mode, KB status, and final integration criteria.
|
|
115
|
+
|
|
116
|
+
Do not turn the first response into a full final artifact unless the request is simple.
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
# Role Catalog
|
|
2
|
+
|
|
3
|
+
Use only the smallest useful set of roles.
|
|
4
|
+
|
|
5
|
+
## Role Selection Matrix
|
|
6
|
+
|
|
7
|
+
Always include CEO / Manager for durable tasks. Add only roles that can create distinct evidence, decisions, or quality checks.
|
|
8
|
+
|
|
9
|
+
| Task type | Default roles | Add only when |
|
|
10
|
+
|---|---|---|
|
|
11
|
+
| Quick wording or narrow UX critique | CEO / Manager | Product Designer if visual or interaction behavior matters |
|
|
12
|
+
| PRD or requirements | CEO / Manager, Requirements Specialist, QA / Acceptance Specialist | Tech Lead for implementation constraints; User Researcher when user evidence is thin |
|
|
13
|
+
| Feature proposal | CEO / Manager, User Researcher, Requirements Specialist, Product Designer | Data / Operations Analyst when metrics or experiments matter |
|
|
14
|
+
| Product review | CEO / Manager, Product Designer, QA / Acceptance Specialist | Tech Lead for feasibility; Data / Operations Analyst for performance or funnel questions |
|
|
15
|
+
| UI demo or prototype plan | CEO / Manager, Product Designer, Requirements Specialist, Tech Lead, QA / Acceptance Specialist | User Researcher for unclear scenarios; Market Analyst for category conventions |
|
|
16
|
+
| Competitor or market research | CEO / Manager, Market Analyst | Product Designer for UX comparison; Requirements Specialist when research must become scope |
|
|
17
|
+
| Roadmap or strategy | CEO / Manager, Market Analyst, Data / Operations Analyst, Requirements Specialist | Tech Lead for sequencing constraints; User Researcher for segment uncertainty |
|
|
18
|
+
|
|
19
|
+
Role selection rules:
|
|
20
|
+
|
|
21
|
+
- Prefer 2-4 roles for medium tasks.
|
|
22
|
+
- Use 5+ roles only for complex tasks with real cross-functional risk.
|
|
23
|
+
- Do not create a role file for a role that only contributes generic commentary.
|
|
24
|
+
- If a role depends on missing evidence, record the gap instead of inventing the role's findings.
|
|
25
|
+
|
|
26
|
+
## CEO / Manager
|
|
27
|
+
|
|
28
|
+
Owns orchestration, scope, priorities, tradeoffs, dependencies, and final synthesis.
|
|
29
|
+
|
|
30
|
+
Inputs:
|
|
31
|
+
- CEO brief
|
|
32
|
+
- all role outputs
|
|
33
|
+
- user constraints
|
|
34
|
+
|
|
35
|
+
Outputs:
|
|
36
|
+
- orchestration plan
|
|
37
|
+
- final integrated artifact
|
|
38
|
+
- risks and next steps
|
|
39
|
+
|
|
40
|
+
Boundaries:
|
|
41
|
+
- must not invent missing evidence as fact
|
|
42
|
+
- must preserve user intent over role preferences
|
|
43
|
+
|
|
44
|
+
## User Researcher
|
|
45
|
+
|
|
46
|
+
Owns user scenarios, jobs-to-be-done, pain points, behavior assumptions, and validation needs.
|
|
47
|
+
|
|
48
|
+
Outputs:
|
|
49
|
+
- user segments
|
|
50
|
+
- scenarios
|
|
51
|
+
- needs and anxieties
|
|
52
|
+
- research gaps
|
|
53
|
+
|
|
54
|
+
Boundaries:
|
|
55
|
+
- mark assumptions clearly when no user evidence is provided
|
|
56
|
+
|
|
57
|
+
## Market Analyst
|
|
58
|
+
|
|
59
|
+
Owns competitor landscape, positioning, alternatives, differentiation, and market signals.
|
|
60
|
+
|
|
61
|
+
Outputs:
|
|
62
|
+
- competitor map
|
|
63
|
+
- feature/positioning comparison
|
|
64
|
+
- opportunity and risk notes
|
|
65
|
+
|
|
66
|
+
Boundaries:
|
|
67
|
+
- current market facts require browsing or user-provided sources
|
|
68
|
+
- do not fabricate competitor details
|
|
69
|
+
|
|
70
|
+
## Requirements Specialist
|
|
71
|
+
|
|
72
|
+
Owns PRD, scope, flows, user stories, acceptance criteria, edge cases, and non-goals.
|
|
73
|
+
|
|
74
|
+
Outputs:
|
|
75
|
+
- requirement breakdown
|
|
76
|
+
- acceptance criteria
|
|
77
|
+
- open questions
|
|
78
|
+
- implementation-ready scope
|
|
79
|
+
|
|
80
|
+
Boundaries:
|
|
81
|
+
- does not decide visual direction alone
|
|
82
|
+
- escalates vague business goals to the manager
|
|
83
|
+
|
|
84
|
+
## Product Designer
|
|
85
|
+
|
|
86
|
+
Owns information architecture, interaction model, UI states, visual hierarchy, prototype or UI demo direction.
|
|
87
|
+
|
|
88
|
+
Outputs:
|
|
89
|
+
- IA and flows
|
|
90
|
+
- wireframe/prototype guidance
|
|
91
|
+
- UI demo or design spec
|
|
92
|
+
- state and empty/error/loading behavior
|
|
93
|
+
|
|
94
|
+
Boundaries:
|
|
95
|
+
- design must trace back to user needs and product goals
|
|
96
|
+
|
|
97
|
+
## Tech Lead
|
|
98
|
+
|
|
99
|
+
Owns feasibility, implementation risks, architecture constraints, integration paths, and engineering tradeoffs.
|
|
100
|
+
|
|
101
|
+
Outputs:
|
|
102
|
+
- feasibility review
|
|
103
|
+
- technical risks
|
|
104
|
+
- suggested implementation slices
|
|
105
|
+
- test/build considerations
|
|
106
|
+
|
|
107
|
+
Boundaries:
|
|
108
|
+
- does not override product goals without explaining tradeoffs
|
|
109
|
+
|
|
110
|
+
## Data / Operations Analyst
|
|
111
|
+
|
|
112
|
+
Owns metrics, funnels, retention, operations loops, experiment design, and data interpretation.
|
|
113
|
+
|
|
114
|
+
Outputs:
|
|
115
|
+
- KPI tree
|
|
116
|
+
- analysis plan
|
|
117
|
+
- experiment or ops recommendations
|
|
118
|
+
- measurement risks
|
|
119
|
+
|
|
120
|
+
Boundaries:
|
|
121
|
+
- separate measured facts from assumptions
|
|
122
|
+
|
|
123
|
+
## QA / Acceptance Specialist
|
|
124
|
+
|
|
125
|
+
Owns test scenarios, acceptance review, edge cases, quality gates, and release readiness.
|
|
126
|
+
|
|
127
|
+
Outputs:
|
|
128
|
+
- acceptance checklist
|
|
129
|
+
- test scenarios
|
|
130
|
+
- failure modes
|
|
131
|
+
- release-readiness notes
|
|
132
|
+
|
|
133
|
+
Boundaries:
|
|
134
|
+
- does not expand product scope; only verifies quality and risks
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# Workspace Structure
|
|
2
|
+
|
|
3
|
+
Create a workspace only for durable tasks that produce files or need multi-step collaboration.
|
|
4
|
+
|
|
5
|
+
## Workspace Modes
|
|
6
|
+
|
|
7
|
+
| Mode | Use when | Create | Output |
|
|
8
|
+
|---|---|---|---|
|
|
9
|
+
| None | Simple answers, quick critique, narrow copy or UX suggestion | No files | Chat response |
|
|
10
|
+
| Light | Medium PRD, proposal, review, flow, or research summary that should be reusable | One task folder with one main Markdown file | `{task-slug}/final.md` |
|
|
11
|
+
| Full | Complex work with phases, selected roles, KB tracking, artifacts, or handoff needs | Full structure below | `{task-slug}/outputs/final.md` |
|
|
12
|
+
|
|
13
|
+
Choose the lightest mode that can preserve the work. Upgrade only when the task gains durable files, multiple phases, or real evidence tracking.
|
|
14
|
+
|
|
15
|
+
## Light Layout
|
|
16
|
+
|
|
17
|
+
```text
|
|
18
|
+
{task-slug}/
|
|
19
|
+
README.md
|
|
20
|
+
final.md
|
|
21
|
+
kb-notes.md
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Use light layout for medium tasks when a single reusable artifact is enough.
|
|
25
|
+
|
|
26
|
+
## Full Layout
|
|
27
|
+
|
|
28
|
+
```text
|
|
29
|
+
{task-slug}/
|
|
30
|
+
README.md
|
|
31
|
+
ceo-brief.md
|
|
32
|
+
orchestration-plan.md
|
|
33
|
+
kb/
|
|
34
|
+
README.md
|
|
35
|
+
sources/
|
|
36
|
+
roles/
|
|
37
|
+
manager.md
|
|
38
|
+
user-researcher.md
|
|
39
|
+
market-analyst.md
|
|
40
|
+
requirements-specialist.md
|
|
41
|
+
product-designer.md
|
|
42
|
+
tech-lead.md
|
|
43
|
+
matters/
|
|
44
|
+
01-understand/
|
|
45
|
+
02-define/
|
|
46
|
+
03-design/
|
|
47
|
+
04-review/
|
|
48
|
+
05-final-integration/
|
|
49
|
+
outputs/
|
|
50
|
+
final.md
|
|
51
|
+
artifacts/
|
|
52
|
+
reflections.md
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## File Purposes
|
|
56
|
+
|
|
57
|
+
- `README.md`: task purpose, current status, how to continue.
|
|
58
|
+
- `final.md`: light-mode integrated artifact.
|
|
59
|
+
- `kb-notes.md`: light-mode sources, assumptions, and evidence gaps.
|
|
60
|
+
- `ceo-brief.md`: original user request, assumptions, constraints, requested outputs.
|
|
61
|
+
- `orchestration-plan.md`: roles, phases, dependencies, KB, execution order, output contract.
|
|
62
|
+
- `kb/README.md`: what sources are needed, available, missing, and used.
|
|
63
|
+
- `kb/sources/`: copied or linked local materials when the user allows it.
|
|
64
|
+
- `roles/*.md`: role boundary, inputs, outputs, and current assignment.
|
|
65
|
+
- `matters/*/brief.md`: phase-specific brief.
|
|
66
|
+
- `matters/*/output.md`: phase-specific output.
|
|
67
|
+
- `outputs/final.md`: final CEO-readable synthesis.
|
|
68
|
+
- `outputs/artifacts/`: HTML, images, diagrams, code, spreadsheets, or other deliverables.
|
|
69
|
+
- `reflections.md`: lessons, mistakes, follow-ups, and reusable product insight.
|
|
70
|
+
|
|
71
|
+
## Creation Rules
|
|
72
|
+
|
|
73
|
+
- Create nothing for none mode.
|
|
74
|
+
- For light mode, create only `README.md`, `final.md`, and `kb-notes.md` unless the user asks for additional artifacts.
|
|
75
|
+
- Create only role files for selected roles; do not create all role files by default.
|
|
76
|
+
- Create only phase folders that will be used.
|
|
77
|
+
- Keep paths local and explicit.
|
|
78
|
+
- If the user provides a preferred project folder, create inside it.
|
|
79
|
+
- If no folder is provided, ask for one when durable files matter; otherwise use the current workspace.
|
|
80
|
+
- If the task starts in light mode and becomes complex, upgrade by adding the full layout without discarding the existing files.
|
|
81
|
+
|
|
82
|
+
## Required Plan Fields
|
|
83
|
+
|
|
84
|
+
Full-mode `orchestration-plan.md` must include:
|
|
85
|
+
|
|
86
|
+
- CEO brief summary
|
|
87
|
+
- classification: simple / medium / complex
|
|
88
|
+
- workspace mode
|
|
89
|
+
- selected roles and why
|
|
90
|
+
- phases and expected outputs
|
|
91
|
+
- KB needed and current status
|
|
92
|
+
- execution order
|
|
93
|
+
- final artifact path
|
|
94
|
+
- risks and assumptions
|
|
95
|
+
|
|
96
|
+
Light-mode `README.md` must include:
|
|
97
|
+
|
|
98
|
+
- original request
|
|
99
|
+
- classification and why light mode was enough
|
|
100
|
+
- selected role perspectives
|
|
101
|
+
- KB used or missing
|
|
102
|
+
- final artifact path
|
package/skill.json
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "product-design-ceo-orchestrator",
|
|
3
|
+
"displayName": "Product Design CEO Orchestrator",
|
|
4
|
+
"description": "A product-design orchestration skill for PRDs, feature design, strategy, research, product reviews, UI demo planning, and execution-ready artifacts.",
|
|
5
|
+
"version": "0.2.0",
|
|
6
|
+
"author": "Kai Zhang",
|
|
7
|
+
"license": "MIT",
|
|
8
|
+
"repository": "https://github.com/burpeepoo/product-design-ceo-orchestrator",
|
|
9
|
+
"entry": "SKILL.md",
|
|
10
|
+
"install": "npx product-design-ceo-orchestrator install --ai {{platform}}",
|
|
11
|
+
"keywords": [
|
|
12
|
+
"product-design",
|
|
13
|
+
"product-management",
|
|
14
|
+
"prd",
|
|
15
|
+
"requirements",
|
|
16
|
+
"strategy",
|
|
17
|
+
"user-research",
|
|
18
|
+
"market-research",
|
|
19
|
+
"competitor-analysis",
|
|
20
|
+
"ui-demo",
|
|
21
|
+
"prototype",
|
|
22
|
+
"agent-skill"
|
|
23
|
+
],
|
|
24
|
+
"platforms": [
|
|
25
|
+
"codex",
|
|
26
|
+
"claude",
|
|
27
|
+
"cursor",
|
|
28
|
+
"windsurf",
|
|
29
|
+
"gemini",
|
|
30
|
+
"opencode"
|
|
31
|
+
]
|
|
32
|
+
}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
# Pressure Scenarios
|
|
2
|
+
|
|
3
|
+
Use these scenarios when editing this skill or checking whether it remains easy to use. Each scenario should be tested with and without the skill when subagents are available. Without subagents, use them as a manual review checklist against `SKILL.md` and the reference files.
|
|
4
|
+
|
|
5
|
+
## Success Signals
|
|
6
|
+
|
|
7
|
+
An agent using this skill should:
|
|
8
|
+
|
|
9
|
+
- choose the lightest workflow that can produce a correct result
|
|
10
|
+
- explain orchestration decisions briefly
|
|
11
|
+
- ask only material questions
|
|
12
|
+
- avoid fake role work
|
|
13
|
+
- record KB status when evidence matters
|
|
14
|
+
- finish durable work with one integrated artifact and explicit risks
|
|
15
|
+
|
|
16
|
+
## Scenario 1: Tiny Copy Fix Under Process Temptation
|
|
17
|
+
|
|
18
|
+
User request:
|
|
19
|
+
|
|
20
|
+
> Help me improve this button label: "Submit all family changes".
|
|
21
|
+
|
|
22
|
+
Pressures:
|
|
23
|
+
- The skill has "CEO" in its name.
|
|
24
|
+
- Role and workspace references are available.
|
|
25
|
+
- The agent may want to show process.
|
|
26
|
+
|
|
27
|
+
Expected behavior:
|
|
28
|
+
- Classify as simple.
|
|
29
|
+
- Use manager only.
|
|
30
|
+
- No workspace, role files, or orchestration plan.
|
|
31
|
+
- Provide the improved label and a short rationale.
|
|
32
|
+
|
|
33
|
+
Failure this prevents:
|
|
34
|
+
- Creating a multi-role plan for a one-line copy task.
|
|
35
|
+
|
|
36
|
+
## Scenario 2: Medium PRD Without Heavy Workspace
|
|
37
|
+
|
|
38
|
+
User request:
|
|
39
|
+
|
|
40
|
+
> Draft a PRD for calendar conflict reminders. Keep it practical.
|
|
41
|
+
|
|
42
|
+
Pressures:
|
|
43
|
+
- PRD is durable product-design work.
|
|
44
|
+
- The user asks to keep it practical.
|
|
45
|
+
- Missing details could trigger excessive questions.
|
|
46
|
+
|
|
47
|
+
Expected behavior:
|
|
48
|
+
- Classify as medium.
|
|
49
|
+
- Use Manager, Requirements Specialist, and QA / Acceptance Specialist.
|
|
50
|
+
- Ask only material questions or proceed with marked assumptions.
|
|
51
|
+
- Use light workspace if files are requested or useful; otherwise produce one integrated Markdown artifact.
|
|
52
|
+
|
|
53
|
+
Failure this prevents:
|
|
54
|
+
- Creating full phase folders and every role file before writing a useful PRD.
|
|
55
|
+
|
|
56
|
+
## Scenario 3: Complex UI Demo Needs Formal Orchestration
|
|
57
|
+
|
|
58
|
+
User request:
|
|
59
|
+
|
|
60
|
+
> Design a UI demo for a new family weekly report experience. I need something execution-ready.
|
|
61
|
+
|
|
62
|
+
Pressures:
|
|
63
|
+
- The user wants a demo, not just analysis.
|
|
64
|
+
- The task needs design, requirements, feasibility, and review.
|
|
65
|
+
- Outputs can easily become scattered.
|
|
66
|
+
|
|
67
|
+
Expected behavior:
|
|
68
|
+
- Classify as complex.
|
|
69
|
+
- Use full workspace.
|
|
70
|
+
- Select Manager, Product Designer, Requirements Specialist, Tech Lead, and QA / Acceptance Specialist.
|
|
71
|
+
- Create an orchestration plan before execution.
|
|
72
|
+
- End with `outputs/final.md` and any demo artifacts under `outputs/artifacts/`.
|
|
73
|
+
|
|
74
|
+
Failure this prevents:
|
|
75
|
+
- Producing a loose brainstorm without final integration or artifact paths.
|
|
76
|
+
|
|
77
|
+
## Scenario 4: Competitor Facts Need Evidence
|
|
78
|
+
|
|
79
|
+
User request:
|
|
80
|
+
|
|
81
|
+
> Compare the latest onboarding flows of three family calendar apps and turn it into recommendations.
|
|
82
|
+
|
|
83
|
+
Pressures:
|
|
84
|
+
- "Latest" facts may be unstable.
|
|
85
|
+
- The agent may rely on memory.
|
|
86
|
+
- Product recommendations need evidence.
|
|
87
|
+
|
|
88
|
+
Expected behavior:
|
|
89
|
+
- Classify as medium or complex depending on depth.
|
|
90
|
+
- Use Manager and Market Analyst; add Product Designer if UX comparison is required.
|
|
91
|
+
- Browse or use user-provided sources before making current claims.
|
|
92
|
+
- Record used KB, assumptions, and evidence gaps.
|
|
93
|
+
|
|
94
|
+
Failure this prevents:
|
|
95
|
+
- Fabricating competitor details or treating stale knowledge as current evidence.
|
|
96
|
+
|
|
97
|
+
## Scenario 5: User Explicitly Says Keep It Lightweight
|
|
98
|
+
|
|
99
|
+
User request:
|
|
100
|
+
|
|
101
|
+
> Review this feature idea quickly. Do not make a big framework.
|
|
102
|
+
|
|
103
|
+
Pressures:
|
|
104
|
+
- Product review normally invites multiple roles.
|
|
105
|
+
- The user explicitly rejects ceremony.
|
|
106
|
+
|
|
107
|
+
Expected behavior:
|
|
108
|
+
- Downgrade one level from the default.
|
|
109
|
+
- Use a concise manager-led review, optionally naming one extra lens.
|
|
110
|
+
- Avoid workspace unless the user asks for files.
|
|
111
|
+
|
|
112
|
+
Failure this prevents:
|
|
113
|
+
- Ignoring the user's lightweight preference because the task sounds strategic.
|
|
114
|
+
|
|
115
|
+
## Scenario 6: Existing Docs Provided But Permission Is Narrow
|
|
116
|
+
|
|
117
|
+
User request:
|
|
118
|
+
|
|
119
|
+
> Use the screenshots in this folder to review the settings flow, but do not summarize unrelated docs.
|
|
120
|
+
|
|
121
|
+
Pressures:
|
|
122
|
+
- A folder path may contain tempting extra context.
|
|
123
|
+
- Review quality depends on screenshot evidence.
|
|
124
|
+
|
|
125
|
+
Expected behavior:
|
|
126
|
+
- Use only the allowed screenshots.
|
|
127
|
+
- State visual inferences and uncertainty.
|
|
128
|
+
- Record sources used and sources intentionally not used.
|
|
129
|
+
- Do not summarize unrelated files.
|
|
130
|
+
|
|
131
|
+
Failure this prevents:
|
|
132
|
+
- Treating a local folder as blanket permission to inspect or summarize everything.
|
|
133
|
+
|
|
134
|
+
## Scenario 7: Final Synthesis Must Resolve Conflicts
|
|
135
|
+
|
|
136
|
+
User request:
|
|
137
|
+
|
|
138
|
+
> Turn the research and design notes into a final recommendation.
|
|
139
|
+
|
|
140
|
+
Pressures:
|
|
141
|
+
- Role outputs may disagree.
|
|
142
|
+
- Copy-pasting all notes feels complete.
|
|
143
|
+
- The user needs a CEO-readable decision.
|
|
144
|
+
|
|
145
|
+
Expected behavior:
|
|
146
|
+
- Create a final integration phase.
|
|
147
|
+
- Resolve conflicts explicitly.
|
|
148
|
+
- Separate facts, assumptions, recommendations, risks, and follow-ups.
|
|
149
|
+
- Provide final artifact path if files were promised.
|
|
150
|
+
|
|
151
|
+
Failure this prevents:
|
|
152
|
+
- Leaving scattered role notes without a decision.
|
|
153
|
+
|
|
154
|
+
## Manual Verification Checklist
|
|
155
|
+
|
|
156
|
+
Before deploying edits to this skill, confirm:
|
|
157
|
+
|
|
158
|
+
- `SKILL.md` description starts with "Use when" and only describes triggers.
|
|
159
|
+
- `SKILL.md` includes first response templates and over-orchestration red flags.
|
|
160
|
+
- `references/orchestration-model.md` includes a decision table and downgrade rule.
|
|
161
|
+
- `references/role-catalog.md` includes a role selection matrix.
|
|
162
|
+
- `references/workspace-structure.md` includes none, light, and full workspace modes.
|
|
163
|
+
- Durable task completion is checked by the final validation checklist.
|
|
164
|
+
- These pressure scenarios still map to explicit instructions in the skill.
|