@harness-lab/cli 0.2.8 → 0.3.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/README.md +34 -3
- package/assets/workshop-bundle/SKILL.md +28 -0
- package/assets/workshop-bundle/bundle-manifest.json +44 -52
- package/assets/workshop-bundle/content/challenge-cards/deck.md +19 -17
- package/assets/workshop-bundle/content/challenge-cards/locales/en/deck.md +7 -5
- package/assets/workshop-bundle/content/codex-craft.md +190 -0
- package/assets/workshop-bundle/content/facilitation/codex-setup-verification.md +5 -5
- package/assets/workshop-bundle/content/facilitation/master-guide.md +137 -67
- package/assets/workshop-bundle/content/project-briefs/code-review-helper.md +9 -9
- package/assets/workshop-bundle/content/project-briefs/devtoolbox-cli.md +11 -9
- package/assets/workshop-bundle/content/project-briefs/doc-generator.md +10 -8
- package/assets/workshop-bundle/content/project-briefs/locales/en/devtoolbox-cli.md +4 -2
- package/assets/workshop-bundle/content/project-briefs/locales/en/doc-generator.md +5 -3
- package/assets/workshop-bundle/content/project-briefs/locales/en/metrics-dashboard.md +4 -2
- package/assets/workshop-bundle/content/project-briefs/locales/en/standup-bot.md +4 -2
- package/assets/workshop-bundle/content/project-briefs/metrics-dashboard.md +14 -12
- package/assets/workshop-bundle/content/project-briefs/standup-bot.md +11 -9
- package/assets/workshop-bundle/content/talks/codex-demo-script.md +12 -10
- package/assets/workshop-bundle/content/talks/context-is-king.md +26 -23
- package/assets/workshop-bundle/docs/harness-cli-foundation.md +23 -11
- package/assets/workshop-bundle/docs/learner-resource-kit.md +37 -37
- package/assets/workshop-bundle/materials/coaching-codex.md +76 -0
- package/assets/workshop-bundle/materials/locales/en/participant-resource-kit.md +14 -2
- package/assets/workshop-bundle/materials/participant-resource-kit.md +23 -11
- package/assets/workshop-bundle/workshop-blueprint/README.md +2 -5
- package/assets/workshop-bundle/workshop-blueprint/day-structure.md +14 -0
- package/assets/workshop-bundle/workshop-skill/analyze-checklist.md +3 -3
- package/assets/workshop-bundle/workshop-skill/closing-skill.md +5 -5
- package/assets/workshop-bundle/workshop-skill/commands.md +13 -13
- package/assets/workshop-bundle/workshop-skill/facilitator.md +95 -0
- package/assets/workshop-bundle/workshop-skill/follow-up-package.md +13 -8
- package/assets/workshop-bundle/workshop-skill/install.md +8 -8
- package/assets/workshop-bundle/workshop-skill/locales/en/follow-up-package.md +8 -3
- package/assets/workshop-bundle/workshop-skill/locales/en/recap.md +8 -1
- package/assets/workshop-bundle/workshop-skill/locales/en/reference.md +19 -3
- package/assets/workshop-bundle/workshop-skill/locales/en/setup.md +1 -1
- package/assets/workshop-bundle/workshop-skill/recap.md +12 -5
- package/assets/workshop-bundle/workshop-skill/reference.md +45 -29
- package/assets/workshop-bundle/workshop-skill/setup.md +11 -11
- package/assets/workshop-bundle/workshop-skill/template-agents.md +4 -4
- package/package.json +1 -1
- package/src/client.js +18 -0
- package/src/io.js +11 -2
- package/src/run-cli.js +266 -8
- package/src/session-store.js +1 -0
- package/src/skill-install.js +108 -7
- package/src/workshop-bundle.js +48 -3
- package/assets/workshop-bundle/content/czech-editorial-review-checklist.md +0 -88
- package/assets/workshop-bundle/content/style-examples.md +0 -127
- package/assets/workshop-bundle/content/style-guide.md +0 -108
- package/assets/workshop-bundle/workshop-blueprint/edit-boundaries.md +0 -64
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
# Codex Craft
|
|
2
|
+
|
|
3
|
+
> Tool-specific fluency to sit on top of the agent-agnostic harness method.
|
|
4
|
+
|
|
5
|
+
Harness Lab teaches a method that transfers across coding agents: Codex, pi, Claude Code, Cursor, Aider. The method is agent-agnostic by design. This document is the other half: the **Codex-specific craft** that the method assumes you already know, but that nobody teaches you in order.
|
|
6
|
+
|
|
7
|
+
If something in this doc contradicts the live Codex documentation, trust the live docs. This doc is a teaching artifact, not a specification. Last verified against Codex CLI in April 2026 — re-verify before each cohort.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 1. What the harness actually is in Codex
|
|
12
|
+
|
|
13
|
+
In Codex, the "harness" is the union of four things:
|
|
14
|
+
|
|
15
|
+
1. **The repo context the model can see.** `AGENTS.md`, files you name, files it reads on its own, the diff you built up this session.
|
|
16
|
+
2. **The tool affordances the model can reach.** Shell access, file edits, network calls, Playwright probes. Each affordance has an approval posture you chose.
|
|
17
|
+
3. **The approval and sandbox posture you picked when you started the session.** This determines what Codex can do without asking you.
|
|
18
|
+
4. **The feedback loop.** Tests, type checks, compiler errors, your review. This is how the agent learns it made a mistake in this session.
|
|
19
|
+
|
|
20
|
+
All four are yours to engineer. None of them are optional. When a harness feels "off", it's almost always because one of these four is underspecified.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## 2. Approval modes — pick deliberately, not by default
|
|
25
|
+
|
|
26
|
+
Codex CLI sessions start with an approval posture. The common modes are:
|
|
27
|
+
|
|
28
|
+
- **Suggest** — Codex proposes every shell command or file edit and waits for your `y/n`. Maximum control, maximum friction. Good for unfamiliar repos or risky work (migrations, production-adjacent changes).
|
|
29
|
+
- **Auto-edit** — Codex can edit files without asking, but still asks before running shell commands. This is the right default for most feature work in a repo you trust.
|
|
30
|
+
- **Full-auto** (sometimes called "dangerously") — Codex can edit files and run shell commands without asking, inside the configured sandbox. Fastest; appropriate only when the sandbox is actually restrictive and the work is reversible.
|
|
31
|
+
|
|
32
|
+
**Craft rule:** pick the approval mode *before* you start, based on the blast radius of the work — not during, because the mood of the session shouldn't drive safety posture. Write the mode into your `AGENTS.md` as a note for the next agent.
|
|
33
|
+
|
|
34
|
+
**Common trap:** raising to full-auto for speed, then forgetting to lower it for the next task. Get in the habit of naming the current mode out loud, the way a pilot names airspeed.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## 3. Sandboxing — what "isolated" actually means
|
|
39
|
+
|
|
40
|
+
Codex runs shell commands inside a sandbox. The sandbox constrains which directories are writable, whether network is allowed, and which binaries are callable. Exact defaults change between versions; what matters is the *posture* you should take:
|
|
41
|
+
|
|
42
|
+
- **Assume the sandbox is part of the harness.** If it allows network and the task doesn't need network, narrow it. If it allows writes outside the repo and you don't need that, narrow it. Unused affordances are silent drift risks.
|
|
43
|
+
- **Don't ask Codex to weaken its own sandbox.** If a step needs more capability, exit the session, reconfigure, and re-enter with the wider posture explicitly declared. Silent posture drift is the single most common "why did the agent do that" moment.
|
|
44
|
+
- **Document the sandbox assumption in `AGENTS.md`.** One line: "This repo expects Codex with file writes inside `src/` and `tests/` only, no network, shell limited to npm/node." The next agent — human or AI — needs this to know what is load-bearing.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## 4. Context window as a resource, not a design aesthetic
|
|
49
|
+
|
|
50
|
+
The model has a large context window. You do not have a large budget for putting things into it.
|
|
51
|
+
|
|
52
|
+
**What this means in practice:**
|
|
53
|
+
|
|
54
|
+
- **Not everything belongs in-context.** `AGENTS.md` should be a map — a short directory of deeper sources — not an encyclopedia. If it's 400 lines, it's a manual, and manuals don't fit in working memory.
|
|
55
|
+
- **Progressive disclosure beats eager loading.** Point at files; let the agent read them when needed. A reference is cheaper than a copy.
|
|
56
|
+
- **Long sessions decay.** After dozens of turns, constraints from the top of the session are in danger of being silently forgotten. Re-surface rules before they matter, not after the agent violates them.
|
|
57
|
+
- **The expensive prompt isn't the one you wrote. It's the one the agent is holding right now.** Every turn, the agent is re-reading the entire session. If there's noise in turn 5, it's still there in turn 50.
|
|
58
|
+
|
|
59
|
+
**Craft rule:** treat context budget the way a performance engineer treats latency — as a constraint you measure and optimize, not a free resource you assume. The harness is partly a budget discipline.
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## 5. Long-horizon drift and how to catch it
|
|
64
|
+
|
|
65
|
+
Long-horizon drift is when the agent gradually stops honoring a constraint you set early in the session, because that constraint has scrolled out of its effective attention. It is the signature failure mode of longer Codex work.
|
|
66
|
+
|
|
67
|
+
**Symptoms:**
|
|
68
|
+
|
|
69
|
+
- The agent starts adding `any` types in a repo that explicitly requires strict typing.
|
|
70
|
+
- The agent recreates a utility you told it to import from an existing module.
|
|
71
|
+
- The agent silently stops writing tests for a kind of change it tested earlier.
|
|
72
|
+
- The agent uses the wrong naming convention for the third of three similar files.
|
|
73
|
+
|
|
74
|
+
**The harness move is not "remind the agent more loudly." It is:**
|
|
75
|
+
|
|
76
|
+
1. **Put the constraint in a place the agent re-reads.** `AGENTS.md`, a pre-commit check, a test that fails loudly if the convention is broken. Don't rely on the constraint surviving in the scrollback.
|
|
77
|
+
2. **Add a short re-anchor prompt before risky steps.** "Before you implement this, re-read `AGENTS.md` and state the three rules that apply to this change." This is a cheap, reliable drift detector.
|
|
78
|
+
3. **Watch for the moment the agent starts "improvising" around a missing pattern.** That usually means it can't find the pattern any more, not that the pattern doesn't exist.
|
|
79
|
+
|
|
80
|
+
**Craft rule:** drift is cheaper to prevent with repo artifacts than to correct with more prompting. Every time you correct the same drift twice, encode the constraint.
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## 6. Before and after — a representative prompt pair
|
|
85
|
+
|
|
86
|
+
The following is a **representative** comparison, not a live transcript. It is constructed from patterns commonly observed in Harness Lab cohorts. Your actual output will differ; the shape of the difference is what matters.
|
|
87
|
+
|
|
88
|
+
### The underspecified ask
|
|
89
|
+
|
|
90
|
+
> Add a dashboard route that shows workshop instances with their current phase and team count. Make it look nice.
|
|
91
|
+
|
|
92
|
+
What typically happens:
|
|
93
|
+
|
|
94
|
+
- The agent picks a styling library it guesses is used in the repo (often wrong).
|
|
95
|
+
- It invents a data shape for "instances" instead of reading the existing model.
|
|
96
|
+
- It adds a route at a plausible but not conventional path.
|
|
97
|
+
- It writes no test, because "make it look nice" did not ask for one.
|
|
98
|
+
- You end up with 400 lines of code that almost fit and that you now have to reverse-engineer to reject.
|
|
99
|
+
|
|
100
|
+
### The specified ask
|
|
101
|
+
|
|
102
|
+
> **Goal:** Add a dashboard route listing workshop instances with their current phase and team count.
|
|
103
|
+
>
|
|
104
|
+
> **Context:** The instance model lives in `dashboard/lib/workshop-store.ts`. The existing route pattern is in `dashboard/app/workshops/page.tsx`. Styling uses Tailwind + the components under `dashboard/components/ui/`. Do not introduce a new styling library.
|
|
105
|
+
>
|
|
106
|
+
> **Constraints:**
|
|
107
|
+
> - Read-only route. No mutations.
|
|
108
|
+
> - Must work in file-mode storage (local dev) and neon-mode (production).
|
|
109
|
+
> - Follow the existing route naming convention in `dashboard/app/`.
|
|
110
|
+
> - If the instance list is empty, render the existing `EmptyState` component, not a bespoke fallback.
|
|
111
|
+
>
|
|
112
|
+
> **Done when:**
|
|
113
|
+
> - The new page renders the expected columns.
|
|
114
|
+
> - An e2e test in `dashboard/e2e/` loads the page and asserts at least one instance row when the demo data is present.
|
|
115
|
+
> - Running `npm run build` in `dashboard/` produces no new TypeScript errors.
|
|
116
|
+
>
|
|
117
|
+
> Before you implement, read the existing route file and list the three patterns you're going to reuse. Do not start writing until I confirm.
|
|
118
|
+
|
|
119
|
+
What typically happens:
|
|
120
|
+
|
|
121
|
+
- The agent stops and reads the referenced files.
|
|
122
|
+
- It lists the patterns it found. You catch any misreading in 30 seconds, before any code.
|
|
123
|
+
- It proposes a plan. You either confirm or redirect — cheap.
|
|
124
|
+
- It implements against the stated done criteria.
|
|
125
|
+
- It runs the test and the build before claiming the work is finished.
|
|
126
|
+
- The work either lands correctly in the first pass, or the feedback loop (test, build, review) catches the gap without you reading every line.
|
|
127
|
+
|
|
128
|
+
**The difference isn't the wordcount.** It's that the second ask makes the agent's working context match your working context. The harness is what makes that match possible.
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## 7. A failure-recovery moment
|
|
133
|
+
|
|
134
|
+
This is the single thing missing from most agent demos: what happens when the agent drifts, and how the harness catches it.
|
|
135
|
+
|
|
136
|
+
**Scenario (representative, reconstructed from a cohort session):**
|
|
137
|
+
|
|
138
|
+
A team asked Codex to add a new `facilitator` role to an auth middleware. Codex implemented the change, ran the tests, and reported success. The tests were green. The dashboard worked in dev. Everything looked fine.
|
|
139
|
+
|
|
140
|
+
The continuation team, the next afternoon, opened the repo and read `AGENTS.md`. One line said: "Any change to auth middleware requires a corresponding update to `docs/adr/` with a rationale." There was no new ADR. The team ran a grep for the new role and found it used only in the middleware — not in the one place in the dashboard that branches on role. The middleware change worked in tests because the test fixtures only exercised the happy path.
|
|
141
|
+
|
|
142
|
+
**What the harness caught:**
|
|
143
|
+
|
|
144
|
+
- The ADR rule in `AGENTS.md` caught the missing documentation.
|
|
145
|
+
- The continuation team's "read first, diagnose second" discipline caught the incomplete usage.
|
|
146
|
+
- Neither caught it by "prompting better." Both caught it because the repo carried constraints the morning team had encoded, and the afternoon team had a ritual for reading them.
|
|
147
|
+
|
|
148
|
+
**The morning team's mistake wasn't prompting. It was trusting green tests as a completion signal in a repo where the real completion criteria lived in a doc they didn't re-read.** The fix is never "write a sharper prompt next time." The fix is either a test that would have failed, a rule that would have blocked merge, or a ritual that would have forced the check. All three are harness moves.
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## 8. Tool selection — when to reach for what
|
|
153
|
+
|
|
154
|
+
Harness Lab is agent-agnostic, but in practice you will pick a specific tool for each task. Heuristics:
|
|
155
|
+
|
|
156
|
+
- **Codex CLI** — best for repo work with fast local iteration, especially when you want a sandbox and shell access. Strong for code generation, refactoring, debugging inside a repo you trust.
|
|
157
|
+
- **Claude Code** — best for long, stateful sessions where you want the model to reason about the full shape of a problem and remember decisions across many turns. Strong for architecture work, careful reviews, careful migrations.
|
|
158
|
+
- **pi** — best for terminal-native work that needs multi-model flexibility. Strong when you want to compare outputs or keep the harness lightweight and scriptable.
|
|
159
|
+
- **Cursor / IDE-native tools** — best for fast edit-edit-edit loops inside a single file or small module, where you want the model's suggestions inline and do not need agentic control flow.
|
|
160
|
+
- **Aider** — best for tightly-scoped edits against a known set of files, with git commits per turn.
|
|
161
|
+
|
|
162
|
+
**Craft rule:** pick the tool based on the *shape* of the task, not the one you happen to have open. Every tool has an implicit harness; picking the tool is picking the harness.
|
|
163
|
+
|
|
164
|
+
**None of this means you should switch tools mid-workshop.** Harness Lab cohorts should pick one tool for the day (usually Codex) so the learning accumulates. This section is about Monday morning, not about Saturday's workshop.
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## 9. How to keep learning after today
|
|
169
|
+
|
|
170
|
+
The Codex ecosystem ships new capabilities monthly. What's documented here will be partly outdated within the next release cycle. **Do not treat this doc as a frozen reference.** Treat it as a starting harness for your own reading practice:
|
|
171
|
+
|
|
172
|
+
- Read the official Codex CLI release notes when they ship. The safety and approval posture changes there are the ones that matter most.
|
|
173
|
+
- Subscribe to one practitioner newsletter who uses these tools daily (Simon Willison's blog is a dense source; there are others).
|
|
174
|
+
- When you discover a failure mode in your own work, write it down in your own team's `AGENTS.md` or a runbook. Your team's harness should learn from your team's failures, not just from this doc.
|
|
175
|
+
- Every quarter, re-read your `AGENTS.md` files with a skeptical eye. Delete anything that is no longer load-bearing. Simplicity is part of the harness.
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## 10. The one-line summary
|
|
180
|
+
|
|
181
|
+
You cannot prompt your way out of a bad harness. You can, however, engineer a harness that makes prompting mostly unnecessary.
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## See also
|
|
186
|
+
|
|
187
|
+
- [`coaching-codex.md`](../materials/coaching-codex.md) — one-page recipe card for the conversational moves that force plan-first work.
|
|
188
|
+
- [`talks/context-is-king.md`](talks/context-is-king.md) — the workshop talk that introduces the method.
|
|
189
|
+
- [`challenge-cards/deck.md`](challenge-cards/deck.md) — small interventions that install the habits during the build phases.
|
|
190
|
+
- [`../workshop-blueprint/day-structure.md`](../workshop-blueprint/day-structure.md) — the full day architecture and the north-star question.
|
|
@@ -9,7 +9,7 @@ Do 10:30 musí mít každý účastník jednu funkční cestu:
|
|
|
9
9
|
- `Codex App`
|
|
10
10
|
- nebo web fallback
|
|
11
11
|
|
|
12
|
-
Cíl není perfektní instalace. Cíl je dostat každého co nejdřív do práce s
|
|
12
|
+
Cíl není perfektní instalace. Cíl je dostat každého co nejdřív do práce s agentem.
|
|
13
13
|
|
|
14
14
|
## Rychlý start
|
|
15
15
|
|
|
@@ -27,7 +27,7 @@ Cíl není perfektní instalace. Cíl je dostat každého co nejdřív do práce
|
|
|
27
27
|
2. Přihlaste provider nebo účet, který chcete používat.
|
|
28
28
|
3. Otevřete repozitář.
|
|
29
29
|
4. Spusťte `pi`.
|
|
30
|
-
5. Načtěte workshop skill přes `/skill:workshop` a
|
|
30
|
+
5. Načtěte workshop skill přes `/skill:workshop` a řekněte si o další krok.
|
|
31
31
|
|
|
32
32
|
### Windows / macOS
|
|
33
33
|
|
|
@@ -42,10 +42,10 @@ Použijte ho ve chvíli, kdy vás blokuje instalace, firemní politika nebo aute
|
|
|
42
42
|
|
|
43
43
|
## Troubleshooting checklist
|
|
44
44
|
|
|
45
|
-
- Nejde login → přejděte na `App` nebo web fallback a
|
|
45
|
+
- Nejde login → přejděte na `App` nebo web fallback a pokračujte.
|
|
46
46
|
- Nejde CLI instalace → nenechte se blokovat déle než 7 minut.
|
|
47
|
-
- Nejde otevřít repo → spárujte se s
|
|
48
|
-
- Nevíte, co je další krok → v
|
|
47
|
+
- Nejde otevřít repo → spárujte se s někým od stolu a vraťte se k tomu později.
|
|
48
|
+
- Nevíte, co je další krok → v Codexu použijte `$workshop setup`. V pi načtěte `/skill:workshop` a řekněte si o setup pomoc.
|
|
49
49
|
|
|
50
50
|
## Facilitátorské rozhodnutí
|
|
51
51
|
|
|
@@ -1,84 +1,84 @@
|
|
|
1
1
|
# Facilitační průvodce
|
|
2
2
|
|
|
3
|
-
## Otevření a
|
|
3
|
+
## Otevření a welcome
|
|
4
4
|
|
|
5
5
|
### Cíl
|
|
6
6
|
|
|
7
|
-
Spustit den jako
|
|
7
|
+
Spustit den jako společný start pro celý workshop, ne jako provozní brief k dopoledni.
|
|
8
8
|
|
|
9
9
|
### Klíčová message
|
|
10
10
|
|
|
11
|
-
> „Dnes nejde o
|
|
11
|
+
> „Dnes nejde o to být nejrychlejší. Jde o to postavit práci tak, aby ji cizí tým dokázal převzít a posunout dál.“
|
|
12
12
|
|
|
13
13
|
### Co potřebuje zaznít
|
|
14
14
|
|
|
15
|
-
- Nezačínáme tool demo ani soutěž v
|
|
16
|
-
- Budeme se učit, stavět, předávat i
|
|
17
|
-
- Jde o
|
|
15
|
+
- Nezačínáme tool demo ani soutěž v promptování.
|
|
16
|
+
- Budeme se učit, stavět, předávat i přebírat. Ten oblouk dne je záměr workshopu.
|
|
17
|
+
- Jde o práci s agentem tak, aby po vás zůstával použitelný kontext.
|
|
18
18
|
- Odpolední část prověří, jestli repo opravdu unese převzetí dalším týmem.
|
|
19
|
-
- Pokud nějaké důležité pravidlo žije jen v
|
|
19
|
+
- Pokud nějaké důležité pravidlo žije jen v hovoru u stolu, ještě neexistuje.
|
|
20
20
|
|
|
21
21
|
### Doporučený sled beatů
|
|
22
22
|
|
|
23
23
|
1. day-opening promise
|
|
24
24
|
2. proč na tom záleží právě teď
|
|
25
25
|
3. analogie typu Lego duck: stejné ingredience, různé použitelné výsledky
|
|
26
|
-
4. krátká pohybová aktivace podle zkušenosti s
|
|
26
|
+
4. krátká pohybová aktivace podle zkušenosti s AI agenty
|
|
27
27
|
5. první pracovní kontrakt pro Build fázi 1
|
|
28
28
|
|
|
29
29
|
### Lego-duck analogie
|
|
30
30
|
|
|
31
|
-
Použijte ji krátce a
|
|
31
|
+
Použijte ji krátce a věcně.
|
|
32
32
|
|
|
33
33
|
Pointa:
|
|
34
34
|
|
|
35
35
|
- stejný agent neznamená stejný výsledek
|
|
36
36
|
- kvalitu neurčuje samotný model
|
|
37
|
-
- kontext, mantinely a
|
|
37
|
+
- kontext, mantinely a ověřování jsou součást výsledku
|
|
38
38
|
|
|
39
|
-
Nevést jako zábavnou odbočku. Vést jako vysvětlení, proč je harness engineering tvůrčí a
|
|
39
|
+
Nevést jako zábavnou odbočku. Vést jako vysvětlení, proč je harness engineering tvůrčí a inženýrská disciplína zároveň.
|
|
40
40
|
|
|
41
41
|
### Pohybová aktivace
|
|
42
42
|
|
|
43
|
-
Použijte krátké rozdělení místnosti podle aktuální zkušenosti s
|
|
43
|
+
Použijte krátké rozdělení místnosti podle aktuální zkušenosti s AI agenty:
|
|
44
44
|
|
|
45
45
|
- používám skoro denně
|
|
46
46
|
- používám, ale opatrně
|
|
47
47
|
- jsem spíš na startu
|
|
48
|
-
- jsem skeptický, ale chci
|
|
48
|
+
- jsem skeptický, ale chci vidět, že to funguje
|
|
49
49
|
|
|
50
50
|
Pravidla:
|
|
51
51
|
|
|
52
|
-
- ne dělat z
|
|
52
|
+
- ne dělat z toho networking kolo
|
|
53
53
|
- stačí přesun a 2 krátké hlasy
|
|
54
|
-
- pointa není seniorita, ale kalibrace místnosti a
|
|
54
|
+
- pointa není seniorita, ale kalibrace místnosti a signál, že den je participativní
|
|
55
55
|
|
|
56
56
|
### Co má facilitátor průběžně vracet
|
|
57
57
|
|
|
58
58
|
- „Kde by to našel další tým bez vás?“
|
|
59
59
|
- „Co je tady skutečně ověřené?“
|
|
60
|
-
- „Je `AGENTS.md` mapa, nebo už se z
|
|
60
|
+
- „Je `AGENTS.md` mapa, nebo už se z něj stává dump?“
|
|
61
61
|
- „Jaký je další bezpečný krok pro cizího člověka nebo agenta?“
|
|
62
62
|
|
|
63
63
|
### První pracovní kontrakt
|
|
64
64
|
|
|
65
|
-
Po
|
|
65
|
+
Po otevření dne potřebuje místnost ještě jednu konkrétní věc:
|
|
66
66
|
|
|
67
|
-
- co má být po prvním build bloku opravdu vidět
|
|
68
|
-
- co nestačí jen slíbit
|
|
67
|
+
- co má být po prvním build bloku opravdu vidět v repu
|
|
68
|
+
- co nestačí jen slíbit nebo dovysvětlit u stolu
|
|
69
69
|
|
|
70
70
|
Do oběda má být vidět:
|
|
71
71
|
|
|
72
|
-
-
|
|
73
|
-
- `AGENTS.md` jako krátká mapa
|
|
74
|
-
-
|
|
75
|
-
- první explicitní
|
|
72
|
+
- `README`, které dává smysl cizímu člověku
|
|
73
|
+
- `AGENTS.md` jako krátká mapa, ne sklad všeho
|
|
74
|
+
- plán kroků nebo jasně vedená implementační stopa, ze které je poznat další bezpečný krok
|
|
75
|
+
- první explicitní ověření před dalším generováním
|
|
76
76
|
|
|
77
77
|
## Context is King talk
|
|
78
78
|
|
|
79
79
|
### Cíl
|
|
80
80
|
|
|
81
|
-
Proměnit energii z
|
|
81
|
+
Proměnit energii z openingu v přesnou tezi a čistý most do Build fáze 1.
|
|
82
82
|
|
|
83
83
|
### Klíčová message
|
|
84
84
|
|
|
@@ -86,19 +86,21 @@ Proměnit energii z openingu v přesnou tezi a čistý most do Build fáze 1.
|
|
|
86
86
|
|
|
87
87
|
### Co potřebuje zaznít
|
|
88
88
|
|
|
89
|
-
- Neučíme se lépe promptovat. Učíme se postavit repo a
|
|
90
|
-
- `AGENTS.md`, skills, runbooky a
|
|
91
|
-
- Team lead nestojí modelu za zády a
|
|
92
|
-
- Po talku se tým vrací k
|
|
89
|
+
- Neučíme se lépe promptovat. Učíme se postavit repo a workflow, ve kterém agent i cizí tým dokážou bezpečně pokračovat.
|
|
90
|
+
- `AGENTS.md`, skills, runbooky a ověřovací kroky jsou týmová infrastruktura, ne polish navíc.
|
|
91
|
+
- Team lead nestojí modelu za zády a nediktuje další větu každých třicet sekund.
|
|
92
|
+
- Po talku se tým vrací k repu s mapou, plánem kroků a prvním ověřením, ne s lovem na chytřejší prompt.
|
|
93
93
|
|
|
94
94
|
### Mikro-cvičení
|
|
95
95
|
|
|
96
|
+
Tohle je krátká facilitátorova ukázka, ne zadání pro celý room.
|
|
97
|
+
|
|
96
98
|
Použijte stejný malý task ve dvou podmínkách:
|
|
97
99
|
|
|
98
100
|
1. prompt blob
|
|
99
101
|
2. krátké zadání s `Goal`, `Context`, `Constraints`, `Done When`
|
|
100
102
|
|
|
101
|
-
Nenechte to sklouznout do debaty o
|
|
103
|
+
Nenechte to sklouznout do debaty o tom, který model je chytřejší.
|
|
102
104
|
|
|
103
105
|
Pointa:
|
|
104
106
|
|
|
@@ -111,94 +113,142 @@ Pointa:
|
|
|
111
113
|
Na konci talku má být jasné:
|
|
112
114
|
|
|
113
115
|
- teorie tím končí
|
|
114
|
-
- tým se vrací k
|
|
115
|
-
-
|
|
116
|
+
- tým se vrací k repu
|
|
117
|
+
- pokud tým ještě nemá workshop skill, teď je chvíle na `harness skill install`, pak `Codex: $workshop setup` nebo `pi: /skill:workshop`
|
|
118
|
+
- nejdřív vzniká mapa a první explicitní ověření
|
|
116
119
|
- teprve potom dává smysl další feature motion
|
|
117
120
|
|
|
118
121
|
## Build fáze 1
|
|
119
122
|
|
|
120
123
|
### Viditelný milestone board
|
|
121
124
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
125
|
+
Do oběda má být v repu vidět pět základních věcí:
|
|
126
|
+
|
|
127
|
+
1. `README`, které dává smysl cizímu člověku
|
|
128
|
+
2. `AGENTS.md` jako krátká mapa
|
|
129
|
+
3. plán, ze kterého je poznat další bezpečný krok
|
|
130
|
+
4. build/test command nebo tracer bullet
|
|
131
|
+
5. první opravdu ověřený posun
|
|
127
132
|
|
|
128
133
|
### Role facilitátora
|
|
129
134
|
|
|
130
|
-
- nejdřív coach — ptejte se, co tým potřebuje a
|
|
131
|
-
- pak mentor — pomozte s
|
|
132
|
-
- učitel až jako poslední možnost — krátce vysvětlete princip a
|
|
135
|
+
- nejdřív coach — ptejte se, co tým potřebuje a kde je zaseknutý
|
|
136
|
+
- pak mentor — pomozte s workflow nebo s nástrojem
|
|
137
|
+
- učitel až jako poslední možnost — krátce vysvětlete princip a vraťte tým do práce
|
|
133
138
|
- vracejte týmům hlavně artefakty, ze kterých se dá opravdu pracovat, ne celý backstage Harness Lab
|
|
139
|
+
- když se tým zasekne, vraťte ho k ověření, ne k delšímu promptu
|
|
134
140
|
|
|
135
141
|
### Na co se při obcházení dívat
|
|
136
142
|
|
|
137
|
-
- Má tým jednu společnou představu o
|
|
138
|
-
- Přibývá kontext v
|
|
143
|
+
- Má tým jednu společnou představu o cíli?
|
|
144
|
+
- Přibývá kontext v repu, nebo zůstává jen v chatu a v hlavách?
|
|
139
145
|
- Ověřují si výstupy, nebo jen generují další text?
|
|
140
|
-
- Mají test, tracer bullet nebo jiné explicitní ověření, které drží agenta v
|
|
141
|
-
- Je z
|
|
146
|
+
- Mají test, tracer bullet nebo jiné explicitní ověření, které drží agenta v mezích?
|
|
147
|
+
- Je z repa poznat, co je hotové, co je rozpracované a co je jen hypotéza?
|
|
142
148
|
- Uměl by jiný tým během pěti minut najít první bezpečný krok?
|
|
143
149
|
|
|
144
|
-
### Facilitační pointa k
|
|
150
|
+
### Facilitační pointa k testům
|
|
145
151
|
|
|
146
|
-
- S
|
|
152
|
+
- S coding agentem nestačí říct „tohle si pak projdeme“.
|
|
147
153
|
- Jakmile agent dostává větší autonomii, tým musí zvýšit kvalitu ověřování.
|
|
148
154
|
- Test-first přístup není dogma pro čistotu. Je to praktický způsob, jak převést záměr do formy, kterou agent umí opakovaně trefovat.
|
|
149
155
|
- Když tým žádné ověření nemá, facilitátor má tlačit na nejmenší možný test nebo tracer bullet, ne na další generování funkcí.
|
|
150
|
-
- U
|
|
151
|
-
- Pokud tým mluví o
|
|
156
|
+
- U UI práce připomínejte pattern: rychlá agent exploration v izolovaném prostředí, potom browser test, potom lidské review.
|
|
157
|
+
- Pokud tým mluví o tom, že „agent to prostě nakliká v mém browseru“, vraťte debatu k sandboxu, nízkému riziku a explicitní kontrole.
|
|
152
158
|
|
|
153
159
|
### Co normalizovat
|
|
154
160
|
|
|
155
161
|
- `AGENTS.md` jako krátkou mapu, ne rostoucí skladiště všeho
|
|
156
|
-
-
|
|
162
|
+
- plán jako pracovní artefakt, ne ceremonii navíc
|
|
157
163
|
- malý průběžný úklid, když se začne šířit chaos nebo duplicity
|
|
158
164
|
- převod opakovaných připomínek do repa místo dalšího ústního mentoringu
|
|
159
165
|
|
|
166
|
+
## Codex demo
|
|
167
|
+
|
|
168
|
+
### Cíl
|
|
169
|
+
|
|
170
|
+
Ukázat Codex jako součást pracovního systému, ne jako samostatné kouzlo. Demo má vysvětlit i to, proč tenhle repo drží pohromadě: protože v repu žije záměr, mantinely, rozpad práce do kroků i způsob kontroly, ne jen v hlavě facilitátora.
|
|
171
|
+
|
|
172
|
+
### Co má být vidět
|
|
173
|
+
|
|
174
|
+
- jedna příběhová linka, ne přehlídka funkcí
|
|
175
|
+
- repozitář, ve kterém je vidět `README`, `AGENTS.md`, rozpad práce do kroků a způsob, jak změnu zkontrolujete
|
|
176
|
+
- kontrast mezi slabým startem bez kontextu a prací, která má mapu a další bezpečný krok
|
|
177
|
+
- krátké ukotvení workshop skillu: `harness skill install`, první command a proč to šetří ústní rescue
|
|
178
|
+
|
|
179
|
+
### Co explicitně říct
|
|
180
|
+
|
|
181
|
+
- „Tohle není demo pro demo. Tohle je způsob, jak vznikal i tenhle workshopový repo systém.“
|
|
182
|
+
- „Když z repa není poznat, proč se změna dělá, jaký je další krok a podle čeho ji zkontrolujete, další člověk ani další agent nenaváže bezpečně.“
|
|
183
|
+
- „Codex je v tomhle důležitý, ale není to pointa sám o sobě. Pointa je harness kolem něj.“
|
|
184
|
+
|
|
185
|
+
### Co neukazovat
|
|
186
|
+
|
|
187
|
+
- pět různých módů Codexu za sebou
|
|
188
|
+
- dlouhé čekání na generování bez komentáře
|
|
189
|
+
- repo, které není continuation-ready a slouží jen jako jednorázový sandbox
|
|
190
|
+
|
|
160
191
|
## Intermezza
|
|
161
192
|
|
|
162
193
|
Každé intermezzo má tři kroky:
|
|
163
194
|
|
|
164
|
-
1. Týmy napíšou jednu větu: „Co jsme změnili a
|
|
165
|
-
2. Ondřej shrne, co vidí u
|
|
166
|
-
3. Zazní jedna principová pointa navázaná na to, co se opravdu děje v
|
|
195
|
+
1. Týmy napíšou jednu větu: „Co jsme změnili a proč.“
|
|
196
|
+
2. Ondřej shrne, co vidí u stolů a co ukazuje monitoring.
|
|
197
|
+
3. Zazní jedna principová pointa navázaná na to, co se opravdu děje v místnosti.
|
|
167
198
|
|
|
168
199
|
Preferované checkpoint otázky:
|
|
169
200
|
|
|
170
|
-
- Co jste přesunuli z
|
|
171
|
-
- Co dnes ověřujete pomocí spustitelného
|
|
201
|
+
- Co jste přesunuli z chatu nebo z hlavy do repa?
|
|
202
|
+
- Co dnes ověřujete pomocí spustitelného ověření?
|
|
172
203
|
- Co by měl číst další tým jako první?
|
|
173
204
|
|
|
174
205
|
### Smysl intermezz
|
|
175
206
|
|
|
176
207
|
- zviditelnit učení napříč týmy
|
|
177
|
-
- udělat z
|
|
208
|
+
- udělat z průběhu dne sérii krátkých checkpointů
|
|
178
209
|
- připomenout, že workflow je stejně důležité jako samotný výsledek
|
|
179
|
-
- vracet týmy k
|
|
210
|
+
- vracet týmy k tomu, že bez ověření jen akcelerují nejistotu
|
|
211
|
+
|
|
212
|
+
Nevést intermezzo jako status meeting.
|
|
213
|
+
Vést ho jako krátký checkpoint, ze kterého si týmy odnesou jednu věc, kterou ještě ten den dopíšou, zpřesní nebo ověří.
|
|
214
|
+
|
|
215
|
+
## Oběd a příprava na handoff
|
|
216
|
+
|
|
217
|
+
- Oběd není pauza od handoffu.
|
|
218
|
+
- Než týmy vstanou od stolu, musí být z repa poznat:
|
|
219
|
+
- co se změnilo
|
|
220
|
+
- co je hotové
|
|
221
|
+
- co je stále hypotéza
|
|
222
|
+
- jaký je další bezpečný krok
|
|
223
|
+
- Když něco z toho zůstane jen v hovoru, odpoledne se to vrátí jako tření.
|
|
180
224
|
|
|
181
225
|
## Rotace
|
|
182
226
|
|
|
183
227
|
- Bez ústního handoffu.
|
|
184
|
-
- Prvních 10 minut nový tým jen čte repo a
|
|
185
|
-
- Frustrace není chyba workshopu. Je to signál kvality kontextu v
|
|
228
|
+
- Prvních 10 minut nový tým jen čte repo a mapuje situaci.
|
|
229
|
+
- Frustrace není chyba workshopu. Je to signál kvality kontextu v repozitáři.
|
|
186
230
|
|
|
187
231
|
### Instrukce pro nový tým
|
|
188
232
|
|
|
189
|
-
- Začněte `README`, `AGENTS.md` a
|
|
233
|
+
- Začněte `README`, `AGENTS.md` a planem.
|
|
190
234
|
- Needitujte hned první soubor, který otevřete.
|
|
191
235
|
- Nejprve si udělejte mapu: co funguje, co chybí, co je rizikové.
|
|
192
|
-
- Nejdřív napište vlastní diagnózu: co pomáhá, co chybí, co je rizikové a
|
|
193
|
-
- Když tým neví, po čem sáhnout, vraťte ho k
|
|
236
|
+
- Nejdřív napište vlastní diagnózu: co pomáhá, co chybí, co je rizikové a jaký je další bezpečný krok.
|
|
237
|
+
- Když tým neví, po čem sáhnout, vraťte ho k learner kitu: `template-agents`, `reference`, `analyze-checklist` a challenge cards.
|
|
194
238
|
|
|
195
|
-
### Facilitační pointa k
|
|
239
|
+
### Facilitační pointa k rotaci
|
|
196
240
|
|
|
197
241
|
- Frustrace je užitečný signál, pokud ukazuje na skrytý kontext nebo chybějící verifikaci.
|
|
198
|
-
- Nepomáhejte týmům ústním handoffem nahrazovat slabý signál v
|
|
242
|
+
- Nepomáhejte týmům ústním handoffem nahrazovat slabý signál v repu.
|
|
199
243
|
- Pomáhejte jim pojmenovat, co musí být po rotaci dopsáno, zpřesněno nebo ověřeno.
|
|
200
244
|
|
|
201
|
-
##
|
|
245
|
+
## Build fáze 2
|
|
246
|
+
|
|
247
|
+
- Po rotaci neopravujeme jen feature. Opravujeme i signál, který převzetí zbrzdil.
|
|
248
|
+
- Každá opakující se bolest je kandidát na lepší mapu, pravidlo, runbook nebo ověření.
|
|
249
|
+
- Další větší změna má přijít až po nové explicitní verifikaci.
|
|
250
|
+
|
|
251
|
+
## Reveal a reflexe
|
|
202
252
|
|
|
203
253
|
### `1-2-4-All`
|
|
204
254
|
|
|
@@ -206,17 +256,37 @@ Otázky:
|
|
|
206
256
|
|
|
207
257
|
- Co vám pomohlo pokračovat?
|
|
208
258
|
- Co chybělo?
|
|
209
|
-
- Jaký signál v
|
|
259
|
+
- Jaký signál v repu vám nejvíc ušetřil čas?
|
|
210
260
|
|
|
211
261
|
### `W³`
|
|
212
262
|
|
|
213
263
|
- `Co?` — co se dnes stalo bez hodnocení
|
|
214
|
-
- `A co?` — co to znamená pro práci s
|
|
264
|
+
- `A co?` — co to znamená pro práci s AI agenty
|
|
215
265
|
- `A teď?` — co uděláte jinak příští týden
|
|
216
266
|
|
|
217
267
|
### Rámec pro facilitaci
|
|
218
268
|
|
|
219
269
|
- Nehodnotíme, který tým byl lepší.
|
|
220
|
-
- Díváme se na systém: které signály pomáhají práci přežít handoff a
|
|
270
|
+
- Díváme se na systém: které signály pomáhají práci přežít handoff a které ji brzdí.
|
|
221
271
|
- Sbíráme konkrétní příklady, ne obecné dojmy.
|
|
222
|
-
- Každá opakující se bolest je kandidát na lepší template, challenge card nebo vodítko v
|
|
272
|
+
- Každá opakující se bolest je kandidát na lepší template, challenge card nebo vodítko v blueprintu.
|
|
273
|
+
|
|
274
|
+
Na konci dne chceme, aby si lidé odnesli tři věci:
|
|
275
|
+
|
|
276
|
+
1. jeden signál, který chtějí zavést natrvalo
|
|
277
|
+
2. jednu slabinu, kterou už příště nenechají jen v hovoru
|
|
278
|
+
3. jeden konkrétní tah pro příští týden
|
|
279
|
+
|
|
280
|
+
### `Monday commitments` — sdílený artefakt
|
|
281
|
+
|
|
282
|
+
Reflexe bez zápisu se do pondělí většinou neudrží. Proto na samém konci dne:
|
|
283
|
+
|
|
284
|
+
- každý účastník napíše jednu větu ve tvaru: **„Příští týden udělám [X], protože [důvod z dnešního dne]."**
|
|
285
|
+
- věty se napíší na papírek, sticky note nebo přímo do sdíleného dokumentu
|
|
286
|
+
- facilitátor je sesbírá a udělá z nich jeden krátký sdílený seznam, který si tým odnese
|
|
287
|
+
- seznam není hodnocení ani soutěž. Je to jediný artefakt z dnešního dne, který prokáže, že reflexe skutečně něco změnila
|
|
288
|
+
|
|
289
|
+
Facilitátorův tah:
|
|
290
|
+
- věty vybízejte k tomu, aby byly konkrétní (ne „budu lépe pracovat s agenty“, ale „do AGENTS.md svého hlavního repa napíšu 4 elementy: goal, context, constraints, done when“)
|
|
291
|
+
- když někdo napíše něco velmi obecného, zeptejte se: „Jaký je první konkrétní tah, který to spustí?"
|
|
292
|
+
- commitmenty nepublikujte jmenovitě mimo room; artefakt patří týmu, ne marketingu
|
|
@@ -2,30 +2,30 @@
|
|
|
2
2
|
|
|
3
3
|
## Problém
|
|
4
4
|
|
|
5
|
-
Code review bývá nevyrovnané. Některé změny projdou s
|
|
5
|
+
Code review bývá nevyrovnané. Některé změny projdou s dobrým checklistem a jasným popisem rizik, jiné bez společného rámce. Reviewer pak improvizuje, autor neví, co má ověřit předem, a tým ztrácí konzistenci právě tam, kde by měl být nejpřesnější.
|
|
6
6
|
|
|
7
|
-
Vaším úkolem je navrhnout nástroj, který z
|
|
7
|
+
Vaším úkolem je navrhnout nástroj, který z diffu nebo změny vytvoří použitelný review checklist a zároveň jasně oddělí jistotu, heuristiku a místa, kde je pořád potřeba lidský úsudek.
|
|
8
8
|
|
|
9
9
|
## User stories
|
|
10
10
|
|
|
11
|
-
- Jako reviewer chci z
|
|
11
|
+
- Jako reviewer chci z diffu rychle získat checklist změněných hranic, rizik, otázek a míst, na která se zaměřit.
|
|
12
12
|
- Jako autor změny chci vědět, co mám ověřit ještě před samotným review.
|
|
13
13
|
- Jako tým po rotaci chci navázat na heuristiky, které původní tým objevil, místo abych je znovu vymýšlel.
|
|
14
14
|
|
|
15
15
|
## Architektonické poznámky
|
|
16
16
|
|
|
17
|
-
- Může jít o
|
|
18
|
-
- Musí být zřejmé, jaké vstupy nástroj očekává, co umí označit jistě a
|
|
19
|
-
- Přidejte seed diff nebo `examples/`, aby šlo workflow lokálně ověřit a
|
|
17
|
+
- Může jít o CLI, web nebo jednoduchý skript. Důležitý je jasný tok `diff → rubric → checklist`.
|
|
18
|
+
- Musí být zřejmé, jaké vstupy nástroj očekává, co umí označit jistě a co naopak zůstává heuristické.
|
|
19
|
+
- Přidejte seed diff nebo `examples/`, aby šlo workflow lokálně ověřit a další tým rychle přidal nové pravidlo.
|
|
20
20
|
- Nástroj má pomáhat reviewerovi, ne předstírat neomylnost.
|
|
21
21
|
|
|
22
22
|
## Hotovo když
|
|
23
23
|
|
|
24
24
|
- Nástroj vytvoří review checklist ze seed diffu.
|
|
25
|
-
- Výstup odlišuje jistá zjištění od doporučení, hypotéz a
|
|
25
|
+
- Výstup odlišuje jistá zjištění od doporučení, hypotéz a bodů pro lidský úsudek.
|
|
26
26
|
- Je jasné, jak přidat nové pravidlo nebo heuristiku bez dlouhého onboardingu.
|
|
27
|
-
- Další tým může během několika minut pokračovat v
|
|
27
|
+
- Další tým může během několika minut pokračovat v rozvoji bez chaosu.
|
|
28
28
|
|
|
29
29
|
## První krok pro agenta
|
|
30
30
|
|
|
31
|
-
Nezačínej kódem. Nejdřív napiš review rubric, tok vstupů a
|
|
31
|
+
Nezačínej kódem. Nejdřív napiš review rubric, tok vstupů a definici toho, co znamená dobrý checklist. Ukaž, kde je jistota, kde heuristika a co musí posoudit člověk. Teprve potom navrhni první implementační slice.
|