@harness-lab/cli 0.3.2 → 0.4.1
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 +11 -1
- package/assets/workshop-bundle/SKILL.md +6 -146
- package/assets/workshop-bundle/bundle-manifest.json +40 -20
- package/assets/workshop-bundle/content/challenge-cards/deck.md +43 -23
- package/assets/workshop-bundle/content/challenge-cards/locales/en/deck.md +40 -20
- package/assets/workshop-bundle/content/facilitation/locales/en/codex-setup-verification.md +7 -0
- package/assets/workshop-bundle/content/facilitation/locales/en/master-guide.md +7 -0
- package/assets/workshop-bundle/content/talks/context-is-king.md +32 -36
- package/assets/workshop-bundle/content/talks/locales/en/codex-demo-script.md +7 -0
- package/assets/workshop-bundle/content/talks/locales/en/context-is-king.md +7 -0
- package/assets/workshop-bundle/materials/coaching-codex.md +15 -12
- package/assets/workshop-bundle/materials/participant-resource-kit.md +24 -0
- package/assets/workshop-bundle/workshop-blueprint/README.md +4 -5
- package/assets/workshop-bundle/workshop-blueprint/agenda.json +20 -20
- package/assets/workshop-bundle/workshop-blueprint/day-structure.md +4 -2
- package/assets/workshop-bundle/workshop-blueprint/operator-guide.md +18 -0
- package/assets/workshop-bundle/workshop-blueprint/teaching-spine.md +31 -0
- package/assets/workshop-bundle/workshop-skill/SKILL-facilitator.md +191 -0
- package/assets/workshop-bundle/workshop-skill/analyze-checklist.md +1 -0
- package/assets/workshop-bundle/workshop-skill/commands.md +0 -4
- package/assets/workshop-bundle/workshop-skill/follow-up-package.md +29 -36
- package/assets/workshop-bundle/workshop-skill/locales/en/commands.md +0 -4
- package/assets/workshop-bundle/workshop-skill/locales/en/follow-up-package.md +29 -36
- package/assets/workshop-bundle/workshop-skill/locales/en/reference.md +1 -0
- package/assets/workshop-bundle/workshop-skill/reference.md +1 -0
- package/package.json +1 -1
- package/src/run-cli.js +36 -1
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: workshop-facilitator
|
|
3
|
+
description: >
|
|
4
|
+
Facilitator-facing skill for the Harness Lab workshop. Provides workshop
|
|
5
|
+
instance management, agenda editing, scene authoring, participant access
|
|
6
|
+
control, and cross-cohort learnings. Activates only after successful
|
|
7
|
+
facilitator login via the harness CLI.
|
|
8
|
+
allowed-tools:
|
|
9
|
+
- Read
|
|
10
|
+
- Grep
|
|
11
|
+
- Glob
|
|
12
|
+
- Agent
|
|
13
|
+
- AskUserQuestion
|
|
14
|
+
- Write
|
|
15
|
+
- Edit
|
|
16
|
+
- Bash
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# Workshop — Facilitator
|
|
20
|
+
|
|
21
|
+
Facilitator-facing skill for the Harness Lab workshop. This skill activates only after successful `workshop facilitator login` via the harness CLI.
|
|
22
|
+
|
|
23
|
+
For the full operational reference with API routes, payload shapes, and rules, see `workshop-skill/facilitator.md`.
|
|
24
|
+
|
|
25
|
+
## Loading Condition
|
|
26
|
+
|
|
27
|
+
This skill should be loaded only when the facilitator has an active facilitator session. Participant sessions do not grant access to these commands.
|
|
28
|
+
|
|
29
|
+
## Language Resolution
|
|
30
|
+
|
|
31
|
+
Facilitator-control commands are operational rather than room-facing delivery:
|
|
32
|
+
- prefer the user's current language unless the facilitator explicitly asks for another reviewed locale or you are quoting workshop content
|
|
33
|
+
- the authored language of a supporting doc does not decide the reply language by itself
|
|
34
|
+
- if the requested locale has no reviewed variant, fall back to English and say so explicitly
|
|
35
|
+
- do not let a Czech-authored fallback file force a Czech answer when the resolved response locale is English
|
|
36
|
+
|
|
37
|
+
## Commands
|
|
38
|
+
|
|
39
|
+
### `workshop facilitator login`
|
|
40
|
+
|
|
41
|
+
Authenticate as a facilitator through the `harness` CLI privileged path.
|
|
42
|
+
The skill should ask the facilitator to complete CLI login/bootstrap if needed, then use the CLI-backed session for subsequent commands.
|
|
43
|
+
This is a facilitator-only command — do not surface to participants.
|
|
44
|
+
|
|
45
|
+
### `workshop facilitator status`
|
|
46
|
+
|
|
47
|
+
Show the current instance state, agenda phase, facilitator list, and team count.
|
|
48
|
+
Requires active facilitator session.
|
|
49
|
+
If a local current instance is selected, prefer that target over deployment-default status.
|
|
50
|
+
When an agent needs machine-readable output, prefer `harness --json workshop status`.
|
|
51
|
+
|
|
52
|
+
### `workshop facilitator current-instance`
|
|
53
|
+
|
|
54
|
+
Show the locally selected facilitator target, where it came from, and the resolved instance record.
|
|
55
|
+
Prefer invoking `harness workshop current-instance`.
|
|
56
|
+
Use this to confirm the CLI target before update, reset, prepare, remove, or phase operations.
|
|
57
|
+
|
|
58
|
+
### `workshop facilitator select-instance <instance-id>`
|
|
59
|
+
|
|
60
|
+
Persist a facilitator-local current target for later workshop commands.
|
|
61
|
+
Prefer invoking `harness workshop select-instance <instance-id>`.
|
|
62
|
+
Use `harness workshop select-instance --clear` to remove the stored selection.
|
|
63
|
+
|
|
64
|
+
### `workshop facilitator list-instances`
|
|
65
|
+
|
|
66
|
+
List the facilitator-visible workshop instance registry.
|
|
67
|
+
Prefer invoking `harness workshop list-instances` over raw API scripts or local session-file inspection.
|
|
68
|
+
Use this when the facilitator needs to discover what currently exists on a shared dashboard before choosing an explicit instance for reset, update, or agenda work.
|
|
69
|
+
When an agent needs strict parsing, prefer `harness --json workshop list-instances`.
|
|
70
|
+
|
|
71
|
+
### `workshop facilitator show-instance <instance-id>`
|
|
72
|
+
|
|
73
|
+
Inspect one explicit workshop instance.
|
|
74
|
+
Prefer invoking `harness workshop show-instance <instance-id>` over raw API scripts.
|
|
75
|
+
Use this when the facilitator needs the full record for one instance rather than the deployment-default runtime status returned by `workshop facilitator status`.
|
|
76
|
+
If a current instance is already selected, the CLI may omit `<instance-id>` and use the stored target.
|
|
77
|
+
|
|
78
|
+
### `workshop facilitator participant-access`
|
|
79
|
+
|
|
80
|
+
Inspect or rotate the shared participant event code for the current workshop instance.
|
|
81
|
+
Prefer invoking `harness --json workshop participant-access` for inspection and `harness --json workshop participant-access --rotate` to issue a fresh code.
|
|
82
|
+
If the current raw code is no longer recoverable from the hash-only runtime store, issue a new code instead of guessing.
|
|
83
|
+
|
|
84
|
+
### `workshop facilitator grant <email> <role>`
|
|
85
|
+
|
|
86
|
+
Grant a Neon Auth user access to the current workshop instance.
|
|
87
|
+
Roles: owner, operator, observer. Requires `owner` role.
|
|
88
|
+
|
|
89
|
+
### `workshop facilitator revoke <email>`
|
|
90
|
+
|
|
91
|
+
Revoke a facilitator's access to the current instance. Requires `owner` role.
|
|
92
|
+
|
|
93
|
+
### `workshop facilitator create-instance`
|
|
94
|
+
|
|
95
|
+
Create a new workshop instance from a template. Requires facilitator session.
|
|
96
|
+
Prefer invoking `harness workshop create-instance` over raw API scripts.
|
|
97
|
+
|
|
98
|
+
The skill should support rich event metadata, not just id and city:
|
|
99
|
+
- `id`
|
|
100
|
+
- `templateId`
|
|
101
|
+
- `contentLang`
|
|
102
|
+
- `eventTitle`
|
|
103
|
+
- `city`
|
|
104
|
+
- `dateRange`
|
|
105
|
+
- `venueName`
|
|
106
|
+
- `roomName`
|
|
107
|
+
- `addressLine`
|
|
108
|
+
- `locationDetails`
|
|
109
|
+
- `facilitatorLabel`
|
|
110
|
+
|
|
111
|
+
### `workshop facilitator update-instance <instance-id>`
|
|
112
|
+
|
|
113
|
+
Update event metadata for an existing workshop instance. Requires facilitator session.
|
|
114
|
+
Prefer invoking `harness workshop update-instance` over raw API scripts.
|
|
115
|
+
Use this when the facilitator wants to correct or refine date, venue, room, address, or event title without resetting the instance.
|
|
116
|
+
Support `contentLang` changes explicitly so facilitators can choose workshop delivery language per instance without changing admin UI language.
|
|
117
|
+
|
|
118
|
+
Facilitator discovery rule:
|
|
119
|
+
- for routine discovery, use `harness workshop list-instances` and `harness workshop show-instance`
|
|
120
|
+
- for repeated work on one live workshop, use `harness workshop select-instance <instance-id>` and `harness workshop current-instance`
|
|
121
|
+
- do not read local CLI session files or improvise authenticated `node -e` fetch scripts unless you are diagnosing the CLI itself
|
|
122
|
+
|
|
123
|
+
### `workshop facilitator reset-instance <instance-id>`
|
|
124
|
+
|
|
125
|
+
Reset one existing workshop instance from the selected blueprint template. Requires facilitator session.
|
|
126
|
+
Prefer invoking `harness workshop reset-instance` over raw API scripts.
|
|
127
|
+
Use this when the facilitator wants fresh canonical agenda, runner, and presenter content for a live instance and accepts that local runtime state will be reinitialized.
|
|
128
|
+
If a current instance is already selected, the CLI may omit `<instance-id>` and use the stored target.
|
|
129
|
+
|
|
130
|
+
### `workshop facilitator remove-instance`
|
|
131
|
+
|
|
132
|
+
Remove a workshop instance from the active list without deleting its archive history. Requires facilitator session.
|
|
133
|
+
Prefer invoking `harness workshop remove-instance`.
|
|
134
|
+
If a current instance is already selected, the CLI may omit `<instance-id>` and use the stored target.
|
|
135
|
+
|
|
136
|
+
### `workshop facilitator prepare`
|
|
137
|
+
|
|
138
|
+
Set the current instance to `prepared` state. Verify event code is ready.
|
|
139
|
+
Prefer invoking `harness workshop prepare`.
|
|
140
|
+
If a current instance is already selected, the CLI may omit `<instance-id>` and use the stored target.
|
|
141
|
+
|
|
142
|
+
### `workshop facilitator agenda`
|
|
143
|
+
|
|
144
|
+
Inspect and edit the local agenda copy for one workshop instance. Requires facilitator session.
|
|
145
|
+
|
|
146
|
+
### `workshop facilitator scenes`
|
|
147
|
+
|
|
148
|
+
Inspect and edit presenter scenes for one workshop instance. This includes listing scenes for an agenda item, creating a new scene, editing content, changing default scene, reordering scenes, and enabling or hiding scenes. Requires facilitator session.
|
|
149
|
+
|
|
150
|
+
Rules for rich scenes:
|
|
151
|
+
- keep scenes agenda-linked and room-facing rather than inventing a freeform slide deck
|
|
152
|
+
- prefer one dominant voice per scene and one main idea per scene
|
|
153
|
+
- use reviewed local blueprint assets for reusable visuals instead of ad hoc remote image URLs
|
|
154
|
+
- treat runtime scene edits as instance-local until a maintainer deliberately publishes them back into the repo
|
|
155
|
+
- when richer scene authoring or promotion is involved, follow `docs/presenter-rich-scene-authoring.md`
|
|
156
|
+
|
|
157
|
+
### `workshop facilitator archive`
|
|
158
|
+
|
|
159
|
+
Archive the current workshop instance with optional notes.
|
|
160
|
+
|
|
161
|
+
### `workshop facilitator learnings`
|
|
162
|
+
|
|
163
|
+
Query the cross-cohort learnings log to review rotation signals from past and current workshops.
|
|
164
|
+
Prefer invoking `harness --json workshop learnings` for machine-readable output.
|
|
165
|
+
Supports flags: `--tag TAG`, `--instance ID`, `--cohort NAME`, `--limit N` (default 20).
|
|
166
|
+
When the facilitator asks for rotation signals, captured observations, or what happened during past handoffs, use this command.
|
|
167
|
+
If the learnings log is empty, say so and suggest capturing the first signal using the rotation capture panel in the facilitator dashboard.
|
|
168
|
+
|
|
169
|
+
### `workshop closing`
|
|
170
|
+
|
|
171
|
+
Prepare Ondrej's closing synthesis by using:
|
|
172
|
+
- sprint checkpoints from the dashboard
|
|
173
|
+
- monitoring summary
|
|
174
|
+
- W³ commitments or closing notes
|
|
175
|
+
Use `workshop-skill/closing-skill.md`.
|
|
176
|
+
Treat this as facilitator-facing. Do not proactively surface it to participants during normal workshop help.
|
|
177
|
+
|
|
178
|
+
## Fallback Content
|
|
179
|
+
|
|
180
|
+
If the API is not reachable:
|
|
181
|
+
- say explicitly that live workshop data is unavailable
|
|
182
|
+
- avoid inventing team state, checkpoint state, or facilitator-only information
|
|
183
|
+
- prefer `workshop-skill/facilitator.md` for the full operational command reference
|
|
184
|
+
|
|
185
|
+
## Style
|
|
186
|
+
|
|
187
|
+
- Be concise and directive.
|
|
188
|
+
- Use the resolved response language.
|
|
189
|
+
- English is the default bundled fallback locale when no live or user-language signal overrides it.
|
|
190
|
+
- Keep command names, file names, and code terms in English.
|
|
191
|
+
- Prefer actionable operational guidance over theory.
|
|
@@ -10,6 +10,7 @@ Když agent dělá `/workshop analyze`, měl by projít:
|
|
|
10
10
|
- jestli repo rozlišuje hotové vs. rozpracované části
|
|
11
11
|
- jestli je v repu plán nebo runbook pro další tým
|
|
12
12
|
- jestli je dohledatelné, co bylo skutečně ověřeno
|
|
13
|
+
- jestli existuje záznam stavu session — co bylo ověřeno, co je rozpracované, jaký je další bezpečný krok
|
|
13
14
|
- kolik pravidel žije jen v promptu a ne v repu
|
|
14
15
|
- jak snadné by bylo pokračovat po rotaci bez ústního handoffu
|
|
15
16
|
- jestli je zřejmý další bezpečný krok
|
|
@@ -39,10 +39,6 @@
|
|
|
39
39
|
- Když si nejste jistí workflow: `workshop commands`
|
|
40
40
|
- Když chcete materiály i po workshopu: `workshop resources`, `workshop follow-up`, `workshop gallery`
|
|
41
41
|
|
|
42
|
-
## Facilitátorské příkazy
|
|
43
|
-
|
|
44
|
-
- `workshop facilitator learnings` — dotaz do learnings logu: záznamy z rotace z minulých i aktuálních workshopů. Podporuje filtrování podle tagu, instance a cohortu.
|
|
45
|
-
|
|
46
42
|
## Důležitá poznámka
|
|
47
43
|
|
|
48
44
|
`workshop` skill je garantovaný výchozí nástroj workshopu. Další workflow skills a veřejné toolkity jsou doporučené rozšíření, ne podmínka účasti.
|
|
@@ -2,39 +2,32 @@
|
|
|
2
2
|
|
|
3
3
|
## 48 hodin po workshopu
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
- Přidali jste build/test příkazy nebo sekci `Done When`?
|
|
35
|
-
- Přidali jste další bezpečný krok nebo krátký handoff runbook?
|
|
36
|
-
- Co vám pomohlo a co vás zablokovalo?
|
|
37
|
-
|
|
38
|
-
## W³ připomínka
|
|
39
|
-
|
|
40
|
-
Pokud máš fotku sticky notes z části `A teď?`, pošli každému jeho vlastní závazek jako osobní připomínku.
|
|
5
|
+
### Váš závazek
|
|
6
|
+
|
|
7
|
+
Pokud máš fotku sticky notes z části „A teď?", pošli každému jeho vlastní závazek jako osobní připomínku. Závazek ze sticky note je to jediné, co je specifické právě pro tebe, právě z tohoto dne. Začni tím.
|
|
8
|
+
|
|
9
|
+
**Jedna věc do pátku:** Splňte svůj závazek ze sticky note. Jeden commit, jeden PR, jeden task — cokoli, co z vašeho závazku udělá realitu.
|
|
10
|
+
|
|
11
|
+
### Anchor cvičení
|
|
12
|
+
|
|
13
|
+
Zapište si tři momenty z vašeho běžného pracovního týdne, kdy otevíráte nový úkol nebo novou session — to jsou vaše Anchor momenty pro „Map before motion." Když se tyto momenty stanou vaším spouštěčem, návyk se udrží sám.
|
|
14
|
+
|
|
15
|
+
### Zdroje
|
|
16
|
+
|
|
17
|
+
- Připomínka principů: Kontext je pracovní systém. `AGENTS.md` je týmová infrastruktura. `Done When` a build/test příkazy zvyšují šanci na dobrý handoff.
|
|
18
|
+
- Odkaz na `/workshop recap`
|
|
19
|
+
- Odkaz nebo výřez z `workshop-skill/template-agents.md`
|
|
20
|
+
- Learner kit: [`docs/learner-resource-kit.md`](../docs/learner-resource-kit.md), [`docs/learner-reference-gallery.md`](../docs/learner-reference-gallery.md), [`materials/participant-resource-kit.md`](../materials/participant-resource-kit.md)
|
|
21
|
+
- Skill příkazy: `workshop resources`, `workshop gallery`, `workshop follow-up`
|
|
22
|
+
|
|
23
|
+
## Týdenní generační prompty
|
|
24
|
+
|
|
25
|
+
Místo checklistů — jeden prompt týdně, který vás přiměje popsat konkrétní zkušenost:
|
|
26
|
+
|
|
27
|
+
**Týden 1:** Popište konkrétní moment z tohoto týdne, kdy jste potřebovali ověřit výstup agenta. Co jste použili jako kontrolu a co byste příště změnili?
|
|
28
|
+
|
|
29
|
+
**Týden 2:** Popište rozhodnutí, které jste tento týden zapsali do repozitáře místo toho, abyste ho nechali v chatu. Co vás přimělo ho zapsat?
|
|
30
|
+
|
|
31
|
+
**Týden 3:** Popište moment, kdy jste agentovi dali omezení předem a ušetřilo vám to opravu. Jaké to bylo omezení?
|
|
32
|
+
|
|
33
|
+
**Týden 4:** Popište situaci, kdy se stejný problém opakoval. Změnili jste systém (template, check, pravidlo), nebo jen výstup?
|
|
@@ -39,10 +39,6 @@
|
|
|
39
39
|
- If you are unsure about workflow: `workshop commands`
|
|
40
40
|
- If you want materials after the workshop too: `workshop resources`, `workshop follow-up`, `workshop gallery`
|
|
41
41
|
|
|
42
|
-
## Facilitator commands
|
|
43
|
-
|
|
44
|
-
- `workshop facilitator learnings` — query the cross-cohort learnings log: rotation signals from past and current workshops. Supports filtering by tag, instance, and cohort.
|
|
45
|
-
|
|
46
42
|
## Important note
|
|
47
43
|
|
|
48
44
|
The `workshop` skill is the guaranteed workshop default. Additional workflow skills and public toolkits are recommended accelerators, not a requirement for participation.
|
|
@@ -2,39 +2,32 @@
|
|
|
2
2
|
|
|
3
3
|
## 48 hours after the workshop
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
- Did you add build/test commands or a `Done When` section?
|
|
35
|
-
- Did you add the next safe move or a short handoff runbook?
|
|
36
|
-
- What helped you and what blocked you?
|
|
37
|
-
|
|
38
|
-
## W³ reminder
|
|
39
|
-
|
|
40
|
-
If you have a photo of the sticky notes from the `And now?` section, send each person their own commitment as a personal reminder.
|
|
5
|
+
### Your commitment
|
|
6
|
+
|
|
7
|
+
If you have a photo of the sticky notes from the "And now?" section, send each person their own commitment as a personal reminder. The sticky-note commitment is the only thing specific to you, from this day. Start there.
|
|
8
|
+
|
|
9
|
+
**One thing before Friday:** Complete your sticky-note commitment. One commit, one PR, one task — anything that turns your commitment into reality.
|
|
10
|
+
|
|
11
|
+
### Anchor exercise
|
|
12
|
+
|
|
13
|
+
Write down three moments in your normal work week when you open a new task or a new session — these are your Anchor moments for "Map before motion." When these moments become your trigger, the habit sustains itself.
|
|
14
|
+
|
|
15
|
+
### Resources
|
|
16
|
+
|
|
17
|
+
- Principle reminder: Context is a working system. `AGENTS.md` is team infrastructure. `Done When` and build/test commands improve the chances of a good handoff.
|
|
18
|
+
- Pointer to `/workshop recap`
|
|
19
|
+
- Link to or excerpt from `workshop-skill/template-agents.md`
|
|
20
|
+
- Learner kit: [`docs/learner-resource-kit.md`](../../../docs/learner-resource-kit.md), [`docs/learner-reference-gallery.md`](../../../docs/learner-reference-gallery.md), [`materials/participant-resource-kit.md`](../../../materials/participant-resource-kit.md)
|
|
21
|
+
- Skill commands: `workshop resources`, `workshop gallery`, `workshop follow-up`
|
|
22
|
+
|
|
23
|
+
## Weekly generation prompts
|
|
24
|
+
|
|
25
|
+
Instead of checklists — one prompt per week that asks you to describe a concrete experience:
|
|
26
|
+
|
|
27
|
+
**Week 1:** Describe a specific moment this week when you needed to verify agent output. What did you use as the check, and what would you change next time?
|
|
28
|
+
|
|
29
|
+
**Week 2:** Describe a decision you wrote into the repository this week instead of leaving it in chat. What made you decide to write it down?
|
|
30
|
+
|
|
31
|
+
**Week 3:** Describe a moment when you gave the agent a constraint upfront and it saved you a correction. What was the constraint?
|
|
32
|
+
|
|
33
|
+
**Week 4:** Describe a situation where the same problem repeated. Did you change the system (template, check, rule), or just the output?
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
- `If it is not in the repo, it does not exist` - important agreements, rules, and next steps belong in files
|
|
7
7
|
- `Verification is the trust boundary` - more autonomy requires stronger evidence
|
|
8
8
|
- `Handoff is a continuous constraint` - the next team should find the first safe move without your explanation
|
|
9
|
+
- `Fix the system, not just the symptom` - when the same thing repeats, do not fix the output — fix the system
|
|
9
10
|
|
|
10
11
|
## 4 elements of a good task
|
|
11
12
|
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
- `Co není v repu, neexistuje` — důležité dohody, pravidla a další kroky patří do souborů
|
|
7
7
|
- `Ověření je hranice důvěry` — s větší autonomií musí růst i kvalita evidence
|
|
8
8
|
- `Handoff je průběžná podmínka práce` — další tým má najít první bezpečný krok bez vašeho výkladu
|
|
9
|
+
- `Opravte systém, ne jen symptom` — když se stejná věc opakuje, neopravujte výstup — opravte systém
|
|
9
10
|
|
|
10
11
|
## 4 prvky dobrého zadání
|
|
11
12
|
|
package/package.json
CHANGED
package/src/run-cli.js
CHANGED
|
@@ -219,6 +219,7 @@ function printUsage(io, ui) {
|
|
|
219
219
|
ui.commandList([
|
|
220
220
|
helpLine("skill install [--target PATH] [--force]", "Install the workshop skill into your repo"),
|
|
221
221
|
]);
|
|
222
|
+
ui.paragraph("Most participants only need this. After install, use $workshop in your agent.");
|
|
222
223
|
ui.blank();
|
|
223
224
|
|
|
224
225
|
ui.section("Authentication");
|
|
@@ -878,11 +879,19 @@ async function handleWorkshopShowInstance(io, ui, env, positionals, flags, deps)
|
|
|
878
879
|
|
|
879
880
|
try {
|
|
880
881
|
const client = createHarnessClient({ fetchFn: deps.fetchFn, session });
|
|
881
|
-
const result = await
|
|
882
|
+
const [result, agenda] = await Promise.all([
|
|
883
|
+
client.getWorkshopInstance(instanceId),
|
|
884
|
+
client.getWorkshopAgenda(instanceId).catch(() => null),
|
|
885
|
+
]);
|
|
882
886
|
ui.json("Workshop Instance", {
|
|
883
887
|
ok: true,
|
|
884
888
|
...summarizeWorkshopInstance(result.instance),
|
|
885
889
|
instance: result.instance,
|
|
890
|
+
contentSummary: agenda ? {
|
|
891
|
+
phases: Array.isArray(agenda.items) ? agenda.items.length : 0,
|
|
892
|
+
scenes: Array.isArray(agenda.items) ? agenda.items.reduce((sum, item) => sum + (item.presenterScenes?.length ?? 0), 0) : 0,
|
|
893
|
+
currentPhase: agenda.phase ?? null,
|
|
894
|
+
} : null,
|
|
886
895
|
});
|
|
887
896
|
return 0;
|
|
888
897
|
} catch (error) {
|
|
@@ -1117,6 +1126,10 @@ async function handleWorkshopResetInstance(io, ui, env, positionals, flags, deps
|
|
|
1117
1126
|
readStringFlag(flags, "template-id", "template"),
|
|
1118
1127
|
);
|
|
1119
1128
|
ui.json("Workshop Reset Instance", result);
|
|
1129
|
+
if (result.contentSummary) {
|
|
1130
|
+
const s = result.contentSummary;
|
|
1131
|
+
ui.status("ok", `Reset ${instanceId}: ${s.phases} phases, ${s.scenes} scenes, ${s.briefs} briefs, ${s.challenges} challenges`);
|
|
1132
|
+
}
|
|
1120
1133
|
return 0;
|
|
1121
1134
|
} catch (error) {
|
|
1122
1135
|
if (error instanceof HarnessApiError) {
|
|
@@ -1335,6 +1348,28 @@ export async function runCli(argv, io, deps = {}) {
|
|
|
1335
1348
|
return handleSkillInstall(io, ui, mergedDeps, flags);
|
|
1336
1349
|
}
|
|
1337
1350
|
|
|
1351
|
+
if (scope === "skill") {
|
|
1352
|
+
ui.heading("Harness CLI — Skill");
|
|
1353
|
+
ui.paragraph("Install the workshop skill into your project repo.");
|
|
1354
|
+
ui.blank();
|
|
1355
|
+
ui.section("Commands");
|
|
1356
|
+
ui.commandList([
|
|
1357
|
+
helpLine("harness skill install [--target PATH] [--force]", "Install the workshop skill"),
|
|
1358
|
+
]);
|
|
1359
|
+
ui.blank();
|
|
1360
|
+
ui.section("After install");
|
|
1361
|
+
ui.commandList([
|
|
1362
|
+
"Open Codex or pi in the same repo",
|
|
1363
|
+
"Run: $workshop commands",
|
|
1364
|
+
"Run: $workshop reference",
|
|
1365
|
+
"Run: $workshop brief",
|
|
1366
|
+
"Run: $workshop help",
|
|
1367
|
+
]);
|
|
1368
|
+
ui.blank();
|
|
1369
|
+
ui.paragraph("The skill is the participant's primary workshop interface.");
|
|
1370
|
+
return 0;
|
|
1371
|
+
}
|
|
1372
|
+
|
|
1338
1373
|
if (scope === "workshop" && action === "current-instance") {
|
|
1339
1374
|
return handleWorkshopCurrentInstance(io, ui, io.env, mergedDeps);
|
|
1340
1375
|
}
|