You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Refine L3-L5 feature lab instructions and commands
Clarified the descriptions for L3, L4, and L5 slots, and improved instructions for importing packs. Updated commands to reflect the correct paths and added details for verification and troubleshooting.
Copy file name to clipboardExpand all lines: progression/L3-L5-feature-labs.md
+21-39Lines changed: 21 additions & 39 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -35,13 +35,13 @@ Three slots, three changes to your own factory, each one verified. This page ser
35
35
36
36
| Slot | You may build |
37
37
| --- | --- |
38
-
|**L3**| One of the six options below. Nothing else. |
38
+
|**L3**| One of the six options below. |
39
39
|**L4**| An option you have not used yet, **or** a feature of your own from the map. |
40
40
|**L5**| Same as L4: an option you have not used yet, or a feature of your own. |
41
41
42
-
L3 is constrained on purpose. Each option is a worked, tested capability with a page explaining what problem it solves, so the first slot buys you a working extension and a model to copy. The two later slots are where the factory becomes yours.
42
+
L3 is intended to give you a sense of the scope of possible features and changes you can introduce within a single pack, beyond the base factory. The two later slots allow you to explore other capabilities relevant to your capabilities map.
43
43
44
-
**Every option installs on the base factory alone.** None requires another, none has to be done in order, and you never remove one to add the next. Pick on the basis of which problem you actually have.
44
+
**Every option installs on the base factory alone.** None requires another, none has to be done in order, and you don't need to remove one to add the next. Pick on the basis of which problem you actually have.
45
45
46
46
## The six options
47
47
@@ -54,34 +54,24 @@ L3 is constrained on purpose. Each option is a worked, tested capability with a
54
54
|[Strengthen the review system](../hardening/04-strengthen-review-system.md)| One model is one point of view, and it is confidently wrong sometimes |`multi-vendor-rig`|
55
55
|[Self-improvement loop](../hardening/05-self-improvement-loop.md)| The factory produces evidence about itself and nobody reads it | none — it is a loop, not a pack |
56
56
57
-
If your rank-1 row said "install option X", this is where you find X. If it did not, L3 is still an option slot: pick the one whose problem statement is closest to a row on your map.
58
-
59
57
## How each lab runs
60
58
61
59
Participant-led, no shared end state. The instructor circulates; say which layer you are working in when they reach you, because the failure modes differ per layer and pairing works best within one.
62
60
63
-
A slot is enough to build one change properly. It is not enough for two. The ranking you did in L2 is what makes that survivable.
64
-
65
61
## Paths this page uses
66
62
67
-
Every command below reads four path variables, and a fresh Day 2 shell usually holds only the first of them.
63
+
Every command below reads two path variables:
68
64
69
65
| Variable | Points at | Set by |
70
66
| --- | --- | --- |
71
67
|`SFI_PATH`| your workspace directory |[W2](./W2-cloud-box-and-preflight.md) on your laptop, [W3 step 3](./W3-run-your-factory.md#3-open-a-shell-on-the-box) on the box. Both append it to a shell rc, so it survives |
72
-
|`FACTORY_PATH`| the city, `factory1`|`bootstrap/bootstrap.sh`, which the taught path never runs |
73
-
|`ARTIFACTS_PATH`| this repo's `artifacts/` directory | the same script, so it is missing for the same reason |
74
68
|`MY_RIG_PATH`| your own rig |[L1 step 1](./L1-plan-your-factory.md#1-register-your-repo-as-a-rig), as a plain `export` that a new shell forgets |
75
69
76
-
Set the other three now and the rest of the page runs. They are all derived from `SFI_PATH`, so nothing here depends on how you got to Day 2.
cd"$FACTORY_PATH"&& gc rig list && ls "$MY_RIG_PATH"
74
+
cd"$SFI_PATH/factory1"&& gc rig list && ls "$MY_RIG_PATH"
85
75
```
86
76
87
77
**Expected output**
@@ -101,34 +91,36 @@ If `gc rig list` comes back without your rig, or the `ls` cannot find the direct
101
91
102
92
```bash
103
93
cd"$MY_RIG_PATH"
104
-
nano docs/current/capability-map.md
94
+
cat docs/current/capability-map.md
105
95
```
106
96
107
-
Re-rank if the morning changed your mind, and commit the re-rank before you build. A map with a stale ranking is a map you will stop trusting.
108
-
109
-
Then commit to one row out loud, to yourself or to whoever you are pairing with, in this shape:
97
+
Commit to one row out loud, to yourself or to whoever you are pairing with, in this shape:
110
98
111
99
> I am changing the **\<pack | agent | formula | order\>** layer so that **\<the factory does X\>**, and I will know it worked when **\<the verification from the map's own column\>**.
112
100
113
-
If you cannot fill that sentence in, the row is not ready and the next one probably is.
101
+
If you cannot fill that sentence in, the row is not ready for you to pursue proper implementation.
114
102
115
103
### 2. Build it
116
104
105
+
#### Option A: Import from local path
106
+
117
107
**If you picked an option**, its page carries the install and the walkthrough. Every option is a single import onto the base factory, from the copy of this repo already on your box:
**Or install the same pack straight from its repository.**`gc import add` takes a GitHub URL wherever it takes a directory, so a pack you have not cloned installs in one command. This is the path you will use after the workshop, when the pack you want belongs to a colleague or to a project you only ever read. The five options that ship as a pack are all published, so you can run this now against your own rig:
116
+
#### Option B: Import from remote GitHub URL
117
+
118
+
**Or install the same pack straight from its repository.**`gc import add` takes a GitHub URL wherever it takes a directory, so a pack you have not cloned installs in one command. The options that ship as a pack are all published, so you can run this now against your own rig:
@@ -143,17 +135,13 @@ a count of the remote imports fetched
143
135
your new import, its URL, and the same commit sha twice
144
136
```
145
137
146
-
Swap the last path segment for the pack named in [the six options](#the-six-options). The self-improvement loop is a loop rather than a pack, so it is the one option this command cannot install. Four things about that command are worth carrying home, because they are what make a URL install behave differently from a directory one:
138
+
Swap the last path segment for the pack named in [the six options](#the-six-options). Four things about that command are worth carrying home:
147
139
148
140
-**The URL is the one GitHub's address bar shows you.** Browse to the pack's directory in any repo and copy what you see: `https://github.com/<org>/<repo>/tree/<ref>/<path-to-the-pack>`. The `<ref>` is a branch, a tag or a commit.
149
-
-**`gc import install` is the extra step.** A directory import is read where it sits; a remote one has to be fetched first, and the agents do not exist until it has been. Skipping it is the single most common way this path appears to do nothing.
141
+
-**`gc import install` is the extra step.** A directory import is read where it sits; a remote one has to be fetched first. Skipping it is the single most common way this path fails.
150
142
-**The import is pinned the moment you add it.**`gc import list` prints the resolved commit, and the pack stays on that commit until you move it, so a change upstream cannot rewrite your factory overnight. Pass `--version sha:<commit>` to pick a different one, or a constraint like `--version '^1.2.0'` on a repo that tags releases.
151
143
-**The binding name comes from the last path segment.** That is `domain-reviewers-rig` above, and it is the name `gc import list` and `gc import remove` want. Use `--name <name>` when two packs would otherwise collide.
152
144
153
-
Two pages go further when you need them. [W7](./W7-sharing-your-factory.md#a-git-repository) covers the other side of this, how a pack you wrote gets a URL of its own, and [the `gc import add` troubleshooting page](../troubleshooting/gc-import-add.md) carries the full table of source locations, including the local-path cases that behave differently inside a git worktree.
154
-
155
-
Then follow that page's Try It against your own rig rather than `ascii-art`.
156
-
157
145
**If you are building your own**, where you work depends on the layer, and each has a worked example in the repo to copy the shape from.
158
146
159
147
**Agent layer.** You are changing what an agent knows or how it judges. The files are a prompt template and an `agent.toml` under a pack's `agents/<name>/`. Most agent-layer changes are prompt edits, and the highest-value edit is almost always giving a reviewer a real document to cite rather than more adjectives.
@@ -165,7 +153,7 @@ Then follow that page's Try It against your own rig rather than `ascii-art`.
165
153
Whichever layer, reload and check before you test:
166
154
167
155
```bash
168
-
cd"$FACTORY_PATH"
156
+
cd"$SFI_PATH/factory1"
169
157
gc reload
170
158
gc doctor
171
159
```
@@ -179,7 +167,7 @@ Run the verification you wrote in the map's own column, not a different one that
179
167
```bash
180
168
cd"$MY_RIG_PATH"
181
169
bd create --title "<a bead that exercises the change>" --type task --priority 2
bd show <that-bead-id> --json | jq -r '.[0] | .status, (.metadata.blocker_reason // "no blocker recorded")'
@@ -226,7 +214,7 @@ Across the three slots: at least one shipped option installed and working in you
226
214
## Verification
227
215
228
216
```bash
229
-
cd"$FACTORY_PATH"
217
+
cd"$SFI_PATH/factory1"
230
218
gc import list --rig <your-rig-name>
231
219
gc doctor
232
220
cd"$MY_RIG_PATH"
@@ -243,12 +231,6 @@ your commits from this slot
243
231
the bead you deliberately made fail, still blocked with a reason
244
232
```
245
233
246
-
## Ceiling
247
-
248
-
Make what you built survive someone else. Write the three sentences explaining it into your rig's docs, so a colleague reading the file in a month knows why it exists.
249
-
250
-
That is also most of the work for [W7](./W7-sharing-your-factory.md) already done.
251
-
252
234
## Troubleshooting
253
235
254
236
-**The option's page refers to agents you do not have.** Each option page assumes the base factory plus that option. If it names an agent from a different option, you found a bug worth reporting; the options are meant to be independent.
0 commit comments