@harness-lab/cli 0.2.1 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -5
- package/assets/workshop-bundle/SKILL.md +295 -0
- package/assets/workshop-bundle/bundle-manifest.json +172 -0
- package/assets/workshop-bundle/content/challenge-cards/.gitkeep +0 -0
- package/assets/workshop-bundle/content/challenge-cards/deck.md +38 -0
- package/assets/workshop-bundle/content/challenge-cards/print-spec.md +28 -0
- package/assets/workshop-bundle/content/facilitation/.gitkeep +0 -0
- package/assets/workshop-bundle/content/facilitation/codex-setup-verification.md +54 -0
- package/assets/workshop-bundle/content/facilitation/master-guide.md +131 -0
- package/assets/workshop-bundle/content/project-briefs/.gitkeep +0 -0
- package/assets/workshop-bundle/content/project-briefs/code-review-helper.md +31 -0
- package/assets/workshop-bundle/content/project-briefs/devtoolbox-cli.md +31 -0
- package/assets/workshop-bundle/content/project-briefs/doc-generator.md +31 -0
- package/assets/workshop-bundle/content/project-briefs/metrics-dashboard.md +31 -0
- package/assets/workshop-bundle/content/project-briefs/standup-bot.md +31 -0
- package/assets/workshop-bundle/content/style-examples.md +127 -0
- package/assets/workshop-bundle/content/style-guide.md +106 -0
- package/assets/workshop-bundle/content/talks/.gitkeep +0 -0
- package/assets/workshop-bundle/content/talks/codex-demo-script.md +43 -0
- package/assets/workshop-bundle/content/talks/context-is-king.md +42 -0
- package/assets/workshop-bundle/docs/harness-cli-foundation.md +112 -0
- package/assets/workshop-bundle/docs/learner-reference-gallery.md +82 -0
- package/assets/workshop-bundle/docs/learner-resource-kit.md +126 -0
- package/assets/workshop-bundle/docs/workshop-event-context-contract.md +123 -0
- package/assets/workshop-bundle/materials/participant-resource-kit.md +72 -0
- package/assets/workshop-bundle/workshop-blueprint/README.md +48 -0
- package/assets/workshop-bundle/workshop-blueprint/agenda.json +70 -0
- package/assets/workshop-bundle/workshop-blueprint/control-surfaces.md +101 -0
- package/assets/workshop-bundle/workshop-blueprint/day-structure.md +129 -0
- package/assets/workshop-bundle/workshop-blueprint/edit-boundaries.md +64 -0
- package/assets/workshop-bundle/workshop-blueprint/operator-guide.md +74 -0
- package/assets/workshop-bundle/workshop-blueprint/teaching-spine.md +134 -0
- package/assets/workshop-bundle/workshop-skill/.gitkeep +0 -0
- package/assets/workshop-bundle/workshop-skill/analyze-checklist.md +21 -0
- package/assets/workshop-bundle/workshop-skill/closing-skill.md +30 -0
- package/assets/workshop-bundle/workshop-skill/commands.md +44 -0
- package/assets/workshop-bundle/workshop-skill/facilitator.md +416 -0
- package/assets/workshop-bundle/workshop-skill/follow-up-package.md +35 -0
- package/assets/workshop-bundle/workshop-skill/install.md +58 -0
- package/assets/workshop-bundle/workshop-skill/recap.md +22 -0
- package/assets/workshop-bundle/workshop-skill/reference.md +80 -0
- package/assets/workshop-bundle/workshop-skill/setup.md +84 -0
- package/assets/workshop-bundle/workshop-skill/template-agents.md +35 -0
- package/package.json +8 -3
- package/src/run-cli.js +16 -9
- package/src/skill-install.js +98 -57
- package/src/workshop-bundle.js +233 -0
|
@@ -0,0 +1,416 @@
|
|
|
1
|
+
# Facilitator Commands
|
|
2
|
+
|
|
3
|
+
Příkazy pro facilitátory, kteří řídí workshop instance přes AI agenta.
|
|
4
|
+
|
|
5
|
+
## Auth
|
|
6
|
+
|
|
7
|
+
Facilitátor se musí nejdřív přihlásit přes `harness` CLI. Skill nemá být další secret store pro raw credentials ani dlouhodobou session.
|
|
8
|
+
|
|
9
|
+
### `/workshop facilitator login`
|
|
10
|
+
|
|
11
|
+
Pokud není aktivní facilitátorská session, řekni facilitátorovi, aby spustil:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
harness auth login
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
CLI provede browser/device auth flow, uloží session do lokálního file storage a zpřístupní ji pro další privileged příkazy.
|
|
18
|
+
|
|
19
|
+
Aktuální praktický path v repu:
|
|
20
|
+
|
|
21
|
+
- default / browser-device auth:
|
|
22
|
+
```bash
|
|
23
|
+
harness auth login --dashboard-url https://harness-lab-dashboard.vercel.app
|
|
24
|
+
```
|
|
25
|
+
- file mode / lokální demo fallback:
|
|
26
|
+
```bash
|
|
27
|
+
harness auth login --auth basic --dashboard-url http://localhost:3000 --username facilitator --password secret
|
|
28
|
+
```
|
|
29
|
+
- neon mode / sdílený dashboard bootstrap fallback:
|
|
30
|
+
```bash
|
|
31
|
+
harness auth login --auth neon --dashboard-url https://harness-lab-dashboard.vercel.app --email facilitator@example.com
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Poznámka:
|
|
35
|
+
- CLI dnes defaultně používá browser/device auth a ukládá session do lokálního file storage
|
|
36
|
+
- Pokud facilitátor chce OS-native storage, může použít `HARNESS_SESSION_STORAGE=keychain`, `credential-manager` nebo `secret-service`
|
|
37
|
+
- `--auth basic` a `--auth neon` zůstávají jen jako explicitní fallback pro lokální dev/bootstrap
|
|
38
|
+
|
|
39
|
+
### `/workshop facilitator logout`
|
|
40
|
+
|
|
41
|
+
Požádej o:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
harness auth logout
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Instance Management
|
|
48
|
+
|
|
49
|
+
### `/workshop facilitator status`
|
|
50
|
+
|
|
51
|
+
Preferovaný path:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
harness workshop status
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Zobraz:
|
|
58
|
+
- aktivní instanci a její stav
|
|
59
|
+
- aktuální fázi
|
|
60
|
+
- seznam facilitátorů s rolemi
|
|
61
|
+
- počet týmů
|
|
62
|
+
|
|
63
|
+
### `/workshop facilitator grant <email> <role>`
|
|
64
|
+
|
|
65
|
+
Použij CLI-backed privileged request path. Skill nemá řešit auth bootstrap sám.
|
|
66
|
+
|
|
67
|
+
API capability zůstává:
|
|
68
|
+
|
|
69
|
+
```http
|
|
70
|
+
POST {DASHBOARD_URL}/api/admin/facilitators
|
|
71
|
+
Content-Type: application/json
|
|
72
|
+
|
|
73
|
+
{ "email": "...", "role": "operator" }
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Vyžaduje `owner` roli. Vrací info o novém grantu.
|
|
77
|
+
|
|
78
|
+
### `/workshop facilitator revoke <email>`
|
|
79
|
+
|
|
80
|
+
Nejdřív zavolej `GET /api/admin/facilitators` a najdi grant podle emailu.
|
|
81
|
+
Pak:
|
|
82
|
+
```
|
|
83
|
+
DELETE {DASHBOARD_URL}/api/admin/facilitators/{grantId}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Vyžaduje `owner` roli.
|
|
87
|
+
|
|
88
|
+
### `/workshop facilitator create-instance`
|
|
89
|
+
|
|
90
|
+
Preferovaný path je CLI příkaz nad sdíleným runtime API:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
harness workshop create-instance developer-hackathon-praha-24-4-saturn \
|
|
94
|
+
--template-id blueprint-default \
|
|
95
|
+
--event-title "Developer Hackathon Praha" \
|
|
96
|
+
--city Praha \
|
|
97
|
+
--date-range "24. dubna 2026" \
|
|
98
|
+
--venue-name "Seyfor Praha jednička 103" \
|
|
99
|
+
--room-name Saturn \
|
|
100
|
+
--address-line "CZ, Praha 8, Sokolovska 695/115b" \
|
|
101
|
+
--location-details "17 osob + lektor" \
|
|
102
|
+
--facilitator-label Ondrej
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Raw API reference zůstává jen jako diagnostická nebo architektonická reference:
|
|
106
|
+
|
|
107
|
+
```http
|
|
108
|
+
POST {DASHBOARD_URL}/api/workshop/instances
|
|
109
|
+
Content-Type: application/json
|
|
110
|
+
|
|
111
|
+
{
|
|
112
|
+
"id": "developer-hackathon-praha-24-4-saturn",
|
|
113
|
+
"templateId": "blueprint-default",
|
|
114
|
+
"eventTitle": "Developer Hackathon Praha",
|
|
115
|
+
"city": "Praha",
|
|
116
|
+
"dateRange": "24. dubna 2026",
|
|
117
|
+
"venueName": "Seyfor Praha jednička 103",
|
|
118
|
+
"roomName": "Saturn",
|
|
119
|
+
"addressLine": "CZ, Praha 8, Sokolovska 695/115b",
|
|
120
|
+
"locationDetails": "17 osob + lektor",
|
|
121
|
+
"facilitatorLabel": "Ondrej"
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Poznámky pro skill:
|
|
126
|
+
- skill má preferovat CLI, ne ručně skládané `fetch` skripty
|
|
127
|
+
- `id` musí být lowercase slug s písmeny, čísly a pomlčkami
|
|
128
|
+
- když skill volá create opakovaně se stejným `id`, route vrací `created: false` a existující instance record
|
|
129
|
+
- nehádej venue metadata zkráceně, když je facilitátor zná; pošli je rovnou při create
|
|
130
|
+
|
|
131
|
+
### `/workshop facilitator update-instance <instance-id>`
|
|
132
|
+
|
|
133
|
+
Preferovaný path:
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
harness workshop update-instance developer-hackathon-praha-24-4-saturn \
|
|
137
|
+
--event-title "Developer Hackathon Praha" \
|
|
138
|
+
--date-range "24. dubna 2026" \
|
|
139
|
+
--venue-name "Seyfor Praha jednička 103" \
|
|
140
|
+
--room-name Saturn \
|
|
141
|
+
--address-line "CZ, Praha 8, Sokolovska 695/115b" \
|
|
142
|
+
--location-details "17 osob + lektor" \
|
|
143
|
+
--facilitator-label Ondrej
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Raw API reference:
|
|
147
|
+
|
|
148
|
+
```http
|
|
149
|
+
PATCH {DASHBOARD_URL}/api/workshop/instances/{instanceId}
|
|
150
|
+
Content-Type: application/json
|
|
151
|
+
|
|
152
|
+
{
|
|
153
|
+
"action": "update_metadata",
|
|
154
|
+
"eventTitle": "Developer Hackathon Praha",
|
|
155
|
+
"dateRange": "24. dubna 2026",
|
|
156
|
+
"venueName": "Seyfor Praha jednička 103",
|
|
157
|
+
"roomName": "Saturn",
|
|
158
|
+
"addressLine": "CZ, Praha 8, Sokolovska 695/115b",
|
|
159
|
+
"locationDetails": "17 osob + lektor",
|
|
160
|
+
"facilitatorLabel": "Ondrej"
|
|
161
|
+
}
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
Pravidla:
|
|
165
|
+
- pošli jen fieldy, které chceš změnit
|
|
166
|
+
- nepoužívej reset pro obyčejnou opravu názvu, venue nebo room
|
|
167
|
+
- když route vrátí `400`, payload je špatně; když vrátí `404`, instance neexistuje
|
|
168
|
+
|
|
169
|
+
### `/workshop facilitator prepare`
|
|
170
|
+
|
|
171
|
+
Preferovaný path:
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
harness workshop prepare developer-hackathon-praha-24-4-saturn
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
Raw API reference:
|
|
178
|
+
|
|
179
|
+
```http
|
|
180
|
+
POST {DASHBOARD_URL}/api/workshop
|
|
181
|
+
Content-Type: application/json
|
|
182
|
+
|
|
183
|
+
{ "action": "prepare", "instanceId": "developer-hackathon-praha-24-4-saturn" }
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
Nastaví instanci do stavu `prepared`, ověří event code.
|
|
187
|
+
|
|
188
|
+
### `/workshop facilitator remove-instance <instance-id>`
|
|
189
|
+
|
|
190
|
+
Preferovaný path:
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
harness workshop remove-instance developer-hackathon-praha-24-4-saturn
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
Raw API reference:
|
|
197
|
+
|
|
198
|
+
```http
|
|
199
|
+
PATCH {DASHBOARD_URL}/api/workshop/instances/{instanceId}
|
|
200
|
+
Content-Type: application/json
|
|
201
|
+
|
|
202
|
+
{ "action": "remove" }
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
Pravidla:
|
|
206
|
+
- remove zůstává owner-only operace
|
|
207
|
+
- skill má facilitátora upozornit, že jde o destruktivní odebrání z aktivního seznamu, ne o běžnou editaci metadata
|
|
208
|
+
|
|
209
|
+
### `/workshop facilitator agenda`
|
|
210
|
+
|
|
211
|
+
Lokální editace agendy pro konkrétní instanci používá instanční route:
|
|
212
|
+
|
|
213
|
+
```http
|
|
214
|
+
GET {DASHBOARD_URL}/api/workshop/instances/{instanceId}/agenda
|
|
215
|
+
PATCH {DASHBOARD_URL}/api/workshop/instances/{instanceId}/agenda
|
|
216
|
+
POST {DASHBOARD_URL}/api/workshop/instances/{instanceId}/agenda
|
|
217
|
+
DELETE {DASHBOARD_URL}/api/workshop/instances/{instanceId}/agenda
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
Příklady:
|
|
221
|
+
|
|
222
|
+
```http
|
|
223
|
+
PATCH {DASHBOARD_URL}/api/workshop/instances/{instanceId}/agenda
|
|
224
|
+
Content-Type: application/json
|
|
225
|
+
|
|
226
|
+
{
|
|
227
|
+
"action": "update",
|
|
228
|
+
"itemId": "build-1",
|
|
229
|
+
"title": "...",
|
|
230
|
+
"time": "...",
|
|
231
|
+
"goal": "...",
|
|
232
|
+
"roomSummary": "...",
|
|
233
|
+
"facilitatorPrompts": ["..."],
|
|
234
|
+
"watchFors": ["..."],
|
|
235
|
+
"checkpointQuestions": ["..."]
|
|
236
|
+
}
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
```http
|
|
240
|
+
PATCH {DASHBOARD_URL}/api/workshop/instances/{instanceId}/agenda
|
|
241
|
+
Content-Type: application/json
|
|
242
|
+
|
|
243
|
+
{ "action": "move", "itemId": "build-1", "direction": "up" }
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
```http
|
|
247
|
+
POST {DASHBOARD_URL}/api/workshop/instances/{instanceId}/agenda
|
|
248
|
+
Content-Type: application/json
|
|
249
|
+
|
|
250
|
+
{
|
|
251
|
+
"title": "...",
|
|
252
|
+
"time": "...",
|
|
253
|
+
"goal": "...",
|
|
254
|
+
"roomSummary": "...",
|
|
255
|
+
"facilitatorPrompts": ["..."],
|
|
256
|
+
"watchFors": ["..."],
|
|
257
|
+
"checkpointQuestions": ["..."],
|
|
258
|
+
"afterItemId": "build-1"
|
|
259
|
+
}
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
Pravidla:
|
|
263
|
+
|
|
264
|
+
- agenda item je facilitátorský pack, ne jen `title/time/description`
|
|
265
|
+
- preferované fieldy jsou `goal`, `roomSummary`, `facilitatorPrompts`, `watchFors`, `checkpointQuestions`
|
|
266
|
+
- `description` zůstává compatibility field pro starší surface; pro room-facing shrnutí preferuj `roomSummary`
|
|
267
|
+
- používej kanonická agenda ids jako `opening`, `talk`, `demo`, `build-1`, `intermezzo-1`, `rotation`, `build-2`, `intermezzo-2`, `reveal`
|
|
268
|
+
- skill nemá vymýšlet vlastní názvy workshop momentů mimo tuto kostru
|
|
269
|
+
|
|
270
|
+
### `/workshop facilitator scenes`
|
|
271
|
+
|
|
272
|
+
Presenter scenes jsou agenda-linked room-facing výstupy pro facilitátora a projektor. Skill má umět:
|
|
273
|
+
|
|
274
|
+
- vypsat scény pro celou instanci nebo konkrétní agenda item
|
|
275
|
+
- vytvořit novou scénu
|
|
276
|
+
- upravit obsah, label, scene type a CTA
|
|
277
|
+
- změnit default scénu pro danou agenda položku
|
|
278
|
+
- přeuspořádat scény
|
|
279
|
+
- skrýt nebo znovu povolit scénu
|
|
280
|
+
- smazat lokální scénu
|
|
281
|
+
- číst a případně upravit `facilitatorNotes`, `sourceRefs` a `blocks`
|
|
282
|
+
|
|
283
|
+
Instanční route:
|
|
284
|
+
|
|
285
|
+
```http
|
|
286
|
+
GET {DASHBOARD_URL}/api/workshop/instances/{instanceId}/scenes
|
|
287
|
+
GET {DASHBOARD_URL}/api/workshop/instances/{instanceId}/scenes?agendaItemId=talk
|
|
288
|
+
POST {DASHBOARD_URL}/api/workshop/instances/{instanceId}/scenes
|
|
289
|
+
PATCH {DASHBOARD_URL}/api/workshop/instances/{instanceId}/scenes
|
|
290
|
+
DELETE {DASHBOARD_URL}/api/workshop/instances/{instanceId}/scenes
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
Příklady:
|
|
294
|
+
|
|
295
|
+
```http
|
|
296
|
+
POST {DASHBOARD_URL}/api/workshop/instances/{instanceId}/scenes
|
|
297
|
+
Content-Type: application/json
|
|
298
|
+
|
|
299
|
+
{
|
|
300
|
+
"agendaItemId": "talk",
|
|
301
|
+
"label": "Prompt blob vs repo context",
|
|
302
|
+
"sceneType": "demo",
|
|
303
|
+
"intent": "walkthrough",
|
|
304
|
+
"chromePreset": "agenda",
|
|
305
|
+
"title": "Nejdřív bez kontextu, potom s mapou",
|
|
306
|
+
"facilitatorNotes": [
|
|
307
|
+
"Držte jednu story, ne feature tour."
|
|
308
|
+
],
|
|
309
|
+
"blocks": [
|
|
310
|
+
{
|
|
311
|
+
"id": "hero",
|
|
312
|
+
"type": "hero",
|
|
313
|
+
"title": "Nejdřív bez kontextu, potom s mapou",
|
|
314
|
+
"body": "Ukažte rozdíl mezi prompt blobem a krátkou repo-native mapou."
|
|
315
|
+
},
|
|
316
|
+
{
|
|
317
|
+
"id": "questions",
|
|
318
|
+
"type": "bullet-list",
|
|
319
|
+
"title": "Pointa",
|
|
320
|
+
"items": [
|
|
321
|
+
"Co není v repu, neexistuje.",
|
|
322
|
+
"Kontext je páka, ne kosmetika."
|
|
323
|
+
]
|
|
324
|
+
}
|
|
325
|
+
],
|
|
326
|
+
"ctaLabel": "Potom přepnout na participant walkthrough"
|
|
327
|
+
}
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
```http
|
|
331
|
+
PATCH {DASHBOARD_URL}/api/workshop/instances/{instanceId}/scenes
|
|
332
|
+
Content-Type: application/json
|
|
333
|
+
|
|
334
|
+
{
|
|
335
|
+
"action": "update",
|
|
336
|
+
"agendaItemId": "talk",
|
|
337
|
+
"sceneId": "scene-123",
|
|
338
|
+
"label": "Upravený demo flow",
|
|
339
|
+
"sceneType": "demo",
|
|
340
|
+
"intent": "walkthrough",
|
|
341
|
+
"chromePreset": "agenda",
|
|
342
|
+
"title": "Jedna story, ne feature tour",
|
|
343
|
+
"blocks": [
|
|
344
|
+
{
|
|
345
|
+
"id": "hero",
|
|
346
|
+
"type": "hero",
|
|
347
|
+
"title": "Jedna story, ne feature tour",
|
|
348
|
+
"body": "Neukazujte pět režimů práce. Ukažte jeden čitelný workflow."
|
|
349
|
+
}
|
|
350
|
+
]
|
|
351
|
+
}
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
```http
|
|
355
|
+
PATCH {DASHBOARD_URL}/api/workshop/instances/{instanceId}/scenes
|
|
356
|
+
Content-Type: application/json
|
|
357
|
+
|
|
358
|
+
{ "action": "set_default", "agendaItemId": "talk", "sceneId": "talk-participant-view" }
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
```http
|
|
362
|
+
PATCH {DASHBOARD_URL}/api/workshop/instances/{instanceId}/scenes
|
|
363
|
+
Content-Type: application/json
|
|
364
|
+
|
|
365
|
+
{ "action": "move", "agendaItemId": "talk", "sceneId": "scene-123", "direction": "up" }
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
```http
|
|
369
|
+
PATCH {DASHBOARD_URL}/api/workshop/instances/{instanceId}/scenes
|
|
370
|
+
Content-Type: application/json
|
|
371
|
+
|
|
372
|
+
{ "action": "set_enabled", "agendaItemId": "talk", "sceneId": "scene-123", "enabled": false }
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
```http
|
|
376
|
+
DELETE {DASHBOARD_URL}/api/workshop/instances/{instanceId}/scenes
|
|
377
|
+
Content-Type: application/json
|
|
378
|
+
|
|
379
|
+
{ "agendaItemId": "talk", "sceneId": "scene-123" }
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
Když facilitátor chce změnit wording, flow nebo participant walkthrough přes coding agenta, preferuj tuto route místo ručního popisu změn v UI.
|
|
383
|
+
|
|
384
|
+
Při práci přes API:
|
|
385
|
+
|
|
386
|
+
- neznámé `agendaItemId` nebo `sceneId` vrací `404`
|
|
387
|
+
- malformed payload pořád vrací `400`
|
|
388
|
+
- skill má stale target ids hlásit explicitně, ne pokračovat jako by se změna povedla
|
|
389
|
+
- room-facing obsah patří do `blocks`, facilitátorské guidance do `facilitatorNotes`
|
|
390
|
+
- `title/body` zůstávají kvůli compatibility, ale skill má preferovat strukturované `blocks`
|
|
391
|
+
- když runtime agenda existuje, skill má číst a citovat její `goal`, `roomSummary`, `facilitatorPrompts`, `watchFors`, `checkpointQuestions`, `facilitatorNotes` a `blocks`
|
|
392
|
+
- když runtime data nejsou dostupná, fallbackni na repo-native blueprint/facilitation docs a explicitně to řekni
|
|
393
|
+
|
|
394
|
+
### `/workshop facilitator archive`
|
|
395
|
+
|
|
396
|
+
Zavolej:
|
|
397
|
+
```
|
|
398
|
+
POST {DASHBOARD_URL}/api/workshop/archive
|
|
399
|
+
Content-Type: application/json
|
|
400
|
+
|
|
401
|
+
{ "reason": "manual", "notes": "..." }
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
## Environment
|
|
405
|
+
|
|
406
|
+
Agent potřebuje vědět URL dashboardu:
|
|
407
|
+
- `HARNESS_DASHBOARD_URL` — URL produkčního nebo preview dashboardu
|
|
408
|
+
- Pokud není nastaveno, použij `https://harness-lab-dashboard.vercel.app`
|
|
409
|
+
|
|
410
|
+
## Poznámky
|
|
411
|
+
|
|
412
|
+
- Facilitátorské příkazy jsou oddělené od participant příkazů
|
|
413
|
+
- `/workshop facilitator login` má facilitátora navést do `harness auth login`
|
|
414
|
+
- Všechny ostatní privileged příkazy používají CLI-backed uloženou session
|
|
415
|
+
- Pokud session expiruje, agent řekne facilitátorovi, aby se znovu přihlásil
|
|
416
|
+
- Tyto příkazy nikdy nezobrazuj participant účastníkům
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Follow-up Package
|
|
2
|
+
|
|
3
|
+
## 48 hodin po workshopu
|
|
4
|
+
|
|
5
|
+
Pošli účastníkům:
|
|
6
|
+
|
|
7
|
+
1. Krátké připomenutí hlavních principů:
|
|
8
|
+
- Kontext je pracovní systém
|
|
9
|
+
- `AGENTS.md` je týmová infrastruktura
|
|
10
|
+
- `Done When` a build/test příkazy zvyšují šanci na dobrý handoff
|
|
11
|
+
2. Odkaz na `/workshop recap`
|
|
12
|
+
3. Odkaz nebo výřez z `workshop-skill/template-agents.md`
|
|
13
|
+
4. Výzvu týdne:
|
|
14
|
+
- „Přidejte `AGENTS.md` do jednoho reálného projektu.“
|
|
15
|
+
- „Přesuňte jedno trvalé pravidlo z promptu do repa.“
|
|
16
|
+
5. Odkaz na learner kit:
|
|
17
|
+
- [`docs/learner-resource-kit.md`](../docs/learner-resource-kit.md)
|
|
18
|
+
- [`docs/learner-reference-gallery.md`](../docs/learner-reference-gallery.md)
|
|
19
|
+
- [`materials/participant-resource-kit.md`](../materials/participant-resource-kit.md)
|
|
20
|
+
6. Připomeňte, že stejné materiály lze vyžádat i přes skill:
|
|
21
|
+
- `workshop resources`
|
|
22
|
+
- `workshop gallery`
|
|
23
|
+
- `workshop follow-up`
|
|
24
|
+
|
|
25
|
+
## 1 týden po workshopu
|
|
26
|
+
|
|
27
|
+
Krátký follow-up dotaz:
|
|
28
|
+
|
|
29
|
+
- Vytvořili jste `AGENTS.md` v reálném projektu?
|
|
30
|
+
- Přidali jste build/test příkazy nebo sekci `Done When`?
|
|
31
|
+
- Co vám pomohlo a co vás zablokovalo?
|
|
32
|
+
|
|
33
|
+
## W³ připomínka
|
|
34
|
+
|
|
35
|
+
Pokud máš fotku sticky notes z části `A teď?`, pošli každému jeho vlastní závazek jako osobní připomínku.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Workshop Skill Install
|
|
2
|
+
|
|
3
|
+
## Doporučená distribuce
|
|
4
|
+
|
|
5
|
+
Výchozí doporučení pro Harness Lab je instalace přes `@harness-lab/cli` do vašeho aktuálního pracovního repa.
|
|
6
|
+
|
|
7
|
+
Proč:
|
|
8
|
+
- skill je pořád repo-native obsah, ale nemá záviset na tom, že máte zrovna klon tohoto veřejného repa
|
|
9
|
+
- stejné soubory slouží jako fallback i jako dokumentace
|
|
10
|
+
- participant má mít funkční workshop companion přímo v týmovém repu
|
|
11
|
+
|
|
12
|
+
## Doporučený participant flow
|
|
13
|
+
|
|
14
|
+
1. otevřít svůj týmový nebo workshopový repo
|
|
15
|
+
2. nainstalovat Harness CLI:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npm install -g @harness-lab/cli
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
3. nainstalovat workshop skill do aktuálního repa:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
harness skill install
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Volitelně můžete cílit jinam:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
harness skill install --target /cesta/k/repu
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
4. otevřít agent nástroj nad tímto repem
|
|
34
|
+
5. ověřit, že fungují minimálně:
|
|
35
|
+
- Codex: `$workshop commands`, `$workshop reference`, `$workshop brief`
|
|
36
|
+
- pi: `/skill:workshop`, potom si říct o `commands`, `reference` nebo `brief`
|
|
37
|
+
|
|
38
|
+
Po úspěšné instalaci `harness skill install` rovnou vypíše doporučené první kroky, aby účastník věděl, že může začít buď v Codexu přes `$workshop ...`, nebo v pi přes `/skill:workshop`.
|
|
39
|
+
Když příkaz pustíte znovu později, CLI zkontroluje, jestli je bundle v cílovém repu aktuální. Pokud je zastaralý, rovnou ho obnoví. `--force` používejte jen tehdy, když chcete vynutit plný reinstall.
|
|
40
|
+
|
|
41
|
+
## Co čekat dál
|
|
42
|
+
|
|
43
|
+
`harness skill install` instaluje garantovaný workshop bundle. Neinstaluje za vás další workflow skills ani externí toolkity.
|
|
44
|
+
|
|
45
|
+
Doporučený další postup:
|
|
46
|
+
|
|
47
|
+
1. rozběhnout `workshop` skill
|
|
48
|
+
2. otevřít `commands`, `reference` a `brief`
|
|
49
|
+
3. doplnit `AGENTS.md`
|
|
50
|
+
4. podle potřeby použít `brainstorm`, `plan`, `work`, `review` nebo `compound`, pokud je ve svém agent setupu máte k dispozici
|
|
51
|
+
5. když chcete participant materiály bez hledání v GitHubu, použít `workshop resources`, `workshop gallery` a `workshop follow-up`
|
|
52
|
+
|
|
53
|
+
## Poznámka
|
|
54
|
+
|
|
55
|
+
`harness skill install` vytvoří projektový bundle v `.agents/skills/harness-lab-workshop`, aby skill šel objevit v repu bez další distribuční vrstvy.
|
|
56
|
+
Tuto složku berte jako generovaný workshop bundle, ne jako hlavní authoring surface.
|
|
57
|
+
|
|
58
|
+
Participant login není potřeba pro samotnou existenci skillu. `workshop login` je až krok pro odemčení live event contextu.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Workshop Recap
|
|
2
|
+
|
|
3
|
+
## Co si odnést
|
|
4
|
+
|
|
5
|
+
- Kontext není kosmetika. Je to pracovní systém.
|
|
6
|
+
- `AGENTS.md`, skills a runbooky nejsou doplněk navíc. Jsou to nástroje, díky kterým tým drží směr.
|
|
7
|
+
- Dobrý handoff poznáte podle toho, že nový tým začne pracovat bez ústního dovysvětlování.
|
|
8
|
+
|
|
9
|
+
## Zkuste tento týden
|
|
10
|
+
|
|
11
|
+
- Přidejte `AGENTS.md` do jednoho reálného projektu.
|
|
12
|
+
- Doplňte build/test příkazy a sekci `Done When`.
|
|
13
|
+
- Jedno trvalé pravidlo přesuňte z promptu do repa.
|
|
14
|
+
- Po větší změně zkuste udělat krátký runbook pro dalšího člověka.
|
|
15
|
+
|
|
16
|
+
## Váš závazek
|
|
17
|
+
|
|
18
|
+
Vraťte se ke sticky note z části `A teď?` a převeďte ji na první konkrétní commit, pull request nebo task v repu.
|
|
19
|
+
|
|
20
|
+
## Až si nebudete jistí
|
|
21
|
+
|
|
22
|
+
Začněte jednoduše: napište, co chcete udělat, kde je kontext, jaká jsou omezení a podle čeho poznáte hotovo.
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Workshop Reference
|
|
2
|
+
|
|
3
|
+
## 4 pracovní defaulty pro dnešek
|
|
4
|
+
|
|
5
|
+
- `Mapa před pohybem` — nejdřív udělejte z repa místo, kde se dá orientovat
|
|
6
|
+
- `Co není v repu, neexistuje` — důležité dohody, pravidla a next steps patří do souborů
|
|
7
|
+
- `Ověření je hranice důvěry` — s větší autonomií musí růst i kvalita evidence
|
|
8
|
+
- `Handoff je průběžný constraint` — další tým má najít první safe move bez vašeho výkladu
|
|
9
|
+
|
|
10
|
+
## 4 prvky dobrého zadání
|
|
11
|
+
|
|
12
|
+
- `Cíl` — co má agent konkrétně vytvořit nebo změnit
|
|
13
|
+
- `Kontext` — které soubory, rozhodnutí a souvislosti jsou pro úkol důležité
|
|
14
|
+
- `Omezení` — pravidla, standardy a hranice řešení
|
|
15
|
+
- `Hotovo když` — podle čeho poznáte, že je práce opravdu dokončená
|
|
16
|
+
|
|
17
|
+
## Rychlý checklist pro handoff
|
|
18
|
+
|
|
19
|
+
- Existuje `AGENTS.md`?
|
|
20
|
+
- Je `AGENTS.md` krátká mapa, ne přerostlý dump?
|
|
21
|
+
- Jsou v repu build/test příkazy, které umí spustit i další tým?
|
|
22
|
+
- Je jasné, co už funguje, co je rozpracované a co je jen nápad?
|
|
23
|
+
- Je v repu plan, runbook nebo jiný dokument, ze kterého další tým pochopí záměr?
|
|
24
|
+
- Je dohledatelné, co bylo skutečně ověřeno?
|
|
25
|
+
- Najde nový tým během pár minut první bezpečný krok?
|
|
26
|
+
|
|
27
|
+
## Doporučené commands
|
|
28
|
+
|
|
29
|
+
- Workshop skill v Codexu: `$workshop ...`
|
|
30
|
+
- Workshop skill v pi: `/skill:workshop`, potom si řekněte o `reference`, `setup`, `brief` nebo jinou workshop akci
|
|
31
|
+
- Když nevíte, co skill umí: `Codex: $workshop commands`
|
|
32
|
+
- Workshop skill je garantovaný default. Workflow skills a externí toolkity jsou doporučené akcelerátory, ne povinný bootstrap.
|
|
33
|
+
- Workflow skills jako `$brainstorm`, `$plan`, `$work`, `$test-writer`, `$review` a `$compound` jsou v tomto workshopu popsané Codex-first. V pi je berte jako volitelnou součást vlastního setupu, ne jako garantovaný default.
|
|
34
|
+
- `Codex: $workshop reference` na začátku dne nebo po ztrátě orientace
|
|
35
|
+
- `Codex: $workshop brief` když potřebujete znovu ukotvit zadání
|
|
36
|
+
- `Codex: $workshop resources` když chcete participant kit a learner kit bez hledání v repu
|
|
37
|
+
- `Codex: $workshop gallery` když chcete další veřejné docs, repozitáře a volitelné toolkity
|
|
38
|
+
- `Codex: $workshop follow-up` když řešíte, co si odnést po workshopu
|
|
39
|
+
- `Codex: $brainstorm` když ještě není jasné, co je nejrozumnější scope nebo slice
|
|
40
|
+
- `Codex: $plan` před větší implementací
|
|
41
|
+
- `Codex: $work` když už máte plan a chcete držet implementaci v jedné linii
|
|
42
|
+
- `Codex: $test-writer` nebo vlastní RED test před implementací, když potřebujete držet agenta v mezích
|
|
43
|
+
- `Codex: $review` po větším kusu práce
|
|
44
|
+
- `Codex: $compound` když chcete převést learning, fix nebo workflow pravidlo do trvalého repo-native artefaktu
|
|
45
|
+
- `Codex: $workshop` pro orientaci během dne
|
|
46
|
+
- `Codex: $workshop template` když repu chybí základní kontext
|
|
47
|
+
- `Codex: $workshop analyze` před handoffem nebo po rotaci, když chcete rychle odhalit slepá místa v repu
|
|
48
|
+
|
|
49
|
+
## Doporučený participant loop
|
|
50
|
+
|
|
51
|
+
- `workshop` pro orientaci a další safe move
|
|
52
|
+
- `brainstorm` nebo rovnou `plan`, když už je scope zřejmý
|
|
53
|
+
- `work` proti jednomu ověřitelnému cíli
|
|
54
|
+
- `review` před tím, než změně uvěříte
|
|
55
|
+
- `compound` nebo krátký runbook, když něco stojí za zachování
|
|
56
|
+
- průběžná cleanup práce: build/test příkazy, omezení a handoff poznámky přesouvejte z chatu do repa
|
|
57
|
+
|
|
58
|
+
## Testy jako hranice důvěry
|
|
59
|
+
|
|
60
|
+
- Čím víc práce dělá agent samostatně, tím méně stačí „já jsem to rychle projel očima“.
|
|
61
|
+
- Když necháte agenta psát bez testů, často jen urychlíte vznik neověřené složitosti.
|
|
62
|
+
- RED test, tracer bullet nebo jednoduché e2e ověření je často nejrychlejší způsob, jak agentovi říct, co přesně má být pravda.
|
|
63
|
+
|
|
64
|
+
## Bezpečný UI workflow
|
|
65
|
+
|
|
66
|
+
- Výchozí pattern je: `agent exploration -> Playwright regression -> human review`.
|
|
67
|
+
- Nechte agenta rychle projít UI, screenshoty a konzoli v izolovaném lokálním prostředí.
|
|
68
|
+
- Jakmile najdete důležitý flow, převeďte ho do opakovatelného browser testu.
|
|
69
|
+
- Nakonec změnu projděte člověkem. Testy chrání proti regresi, ale neřeší automaticky smysl a trade-offy.
|
|
70
|
+
- „Nech model řídit můj běžný přihlášený browser“ není výchozí doporučení. To patří jen do sandboxovaného a záměrně omezeného prostředí.
|
|
71
|
+
|
|
72
|
+
## Rychlá připomínka
|
|
73
|
+
|
|
74
|
+
Dobrý prompt nestačí. Když má práce přežít handoff, musí být kontext uložený v repu a ověření musí být dohledatelné.
|
|
75
|
+
|
|
76
|
+
## Kam dál po workshopu
|
|
77
|
+
|
|
78
|
+
- Oficiální docs, OpenAI článek o Harness Engineering a ověřené veřejné skill repozitáře najdete v [`docs/learner-reference-gallery.md`](../docs/learner-reference-gallery.md).
|
|
79
|
+
- Když už používáte další workflow pack nebo toolkit, berte ho jako rozšíření nad tímto základem, ne jako náhradu za `AGENTS.md`, ověřování a repo-native handoff.
|
|
80
|
+
- Když nechcete hledat v repu, použijte přímo `workshop resources`, `workshop gallery` nebo `workshop follow-up`.
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# Workshop Setup
|
|
2
|
+
|
|
3
|
+
## Cíl
|
|
4
|
+
|
|
5
|
+
Do 10:30 potřebujete jednu funkční cestu do Codexu nebo pi. Ne perfektní setup. Funkční cestu.
|
|
6
|
+
|
|
7
|
+
První cíl po setupu není feature. Je to orientace:
|
|
8
|
+
|
|
9
|
+
- otevřít repo
|
|
10
|
+
- načíst workshop guidance
|
|
11
|
+
- vytvořit krátké `AGENTS.md`
|
|
12
|
+
- pojmenovat první ověřitelný krok
|
|
13
|
+
|
|
14
|
+
Garantovaný default pro dnešek je `workshop` skill. Další workflow skills nebo externí toolkity jsou volitelné zrychlení, ne podmínka účasti.
|
|
15
|
+
|
|
16
|
+
## Nejrychlejší volba
|
|
17
|
+
|
|
18
|
+
- terminálový, hackovatelný multi-model setup: `pi`
|
|
19
|
+
- macOS / Linux: `Codex CLI`
|
|
20
|
+
- Windows nebo macOS: `Codex App`
|
|
21
|
+
- Když se zaseknete: web fallback nebo pairing s někým, komu už setup běží
|
|
22
|
+
|
|
23
|
+
## pi
|
|
24
|
+
|
|
25
|
+
1. Nainstalujte `pi`:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
npm install -g @mariozechner/pi-coding-agent
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
2. Přihlaste provider nebo účet, který chcete používat.
|
|
32
|
+
3. Otevřete repozitář.
|
|
33
|
+
4. Spusťte `pi`.
|
|
34
|
+
5. Načtěte workshop skill přes `/skill:workshop` a řekněte si o `setup`, `reference` nebo `brief`.
|
|
35
|
+
|
|
36
|
+
## Codex CLI
|
|
37
|
+
|
|
38
|
+
1. Ověřte, že máte přístup ke svému Codex účtu.
|
|
39
|
+
2. Nainstalujte CLI podle interního setup flow vaší organizace.
|
|
40
|
+
3. Přihlaste se.
|
|
41
|
+
4. Otevřete repozitář.
|
|
42
|
+
5. Pošlete první smysluplný prompt a ověřte, že dostáváte odpověď.
|
|
43
|
+
|
|
44
|
+
## Codex App
|
|
45
|
+
|
|
46
|
+
1. Nainstalujte aplikaci.
|
|
47
|
+
2. Přihlaste se stejným účtem.
|
|
48
|
+
3. Otevřete workshop repo nebo týmový projekt.
|
|
49
|
+
4. Pošlete první prompt.
|
|
50
|
+
5. Ověřte, že můžete pokračovat bez další blokace.
|
|
51
|
+
|
|
52
|
+
## Když něco nefunguje
|
|
53
|
+
|
|
54
|
+
- Neztrácejte 20 minut sólo debugováním setupu.
|
|
55
|
+
- Po 7 minutách blokace přepněte na App, web fallback nebo pairing.
|
|
56
|
+
- Když nefunguje autentizace, pokračujte s někým od stolu a vraťte se k vlastnímu setupu později.
|
|
57
|
+
- Když si nejste jistí dalším krokem, použijte v Codexu `$workshop setup`. V pi načtěte `/skill:workshop` a řekněte si o setup pomoc. Nebo si zavolejte facilitátora.
|
|
58
|
+
|
|
59
|
+
## Prvních 15 minut po setupu
|
|
60
|
+
|
|
61
|
+
1. Spusťte `workshop` reference:
|
|
62
|
+
- Codex: `$workshop reference`
|
|
63
|
+
- pi: `/skill:workshop`, potom si řekněte o `reference`
|
|
64
|
+
- když chcete rychlý přehled skill surface: `Codex: $workshop commands`
|
|
65
|
+
2. Otevřete brief:
|
|
66
|
+
- Codex: `$workshop brief`
|
|
67
|
+
- pi: `/skill:workshop`, potom si řekněte o `brief`
|
|
68
|
+
3. Doplňte krátké `AGENTS.md`:
|
|
69
|
+
- Codex: `$workshop template`
|
|
70
|
+
4. Pojmenujte první safe move:
|
|
71
|
+
- ideálně přes `plan`, případně `brainstorm`, když scope ještě není jasný
|
|
72
|
+
5. Přidejte jeden executable check:
|
|
73
|
+
- RED test, tracer bullet nebo aspoň jasný review/checklist krok
|
|
74
|
+
6. Když chcete materiály i po workshopu:
|
|
75
|
+
- `Codex: $workshop resources`
|
|
76
|
+
- `Codex: $workshop gallery`
|
|
77
|
+
- `Codex: $workshop follow-up`
|
|
78
|
+
|
|
79
|
+
## Hotovo když
|
|
80
|
+
|
|
81
|
+
- Umíte otevřít repo.
|
|
82
|
+
- Umíte poslat prompt.
|
|
83
|
+
- Máte jednu funkční cestu, jak během workshopu pracovat s agentem.
|
|
84
|
+
- Víte, jaký je první safe move v repu po setupu.
|