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
Reach your own rig through $MY_RIG_PATH instead of retyping its name
Every command that touched a participant's own rig spelled the path out as
$SFI_PATH/<your-rig-name>, so the placeholder had to be hand-substituted 34
times across five pages. L1 step 1 now exports $MY_RIG_PATH beside the
gc rig add that creates the rig, and appends it to a shell rc so a Day 2
terminal still has it.
The 16 --rig <your-rig-name> uses are left alone: that argument takes the
rig's name, not its path.
City: city · Agent: local-core.builder-1
Copy file name to clipboardExpand all lines: bootstrap/README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -61,7 +61,7 @@ Runs the setup work for 00.1, 00.2 and 00.3 on the way past, then stops at the e
61
61
62
62
**Mental model:**`./bootstrap.sh <step>` answers "make my factory look like I just finished `<step>`," not "make my factory ready for me to start `<step>`."
63
63
64
-
**Nothing to paste afterwards.**`$SFI_PATH` is the only path variable the curriculum asks for, and [W2](../progression/W2-cloud-box-and-preflight.md) and [W3](../progression/W3-run-your-factory.md) both append it to a shell rc. The script works out the factory, rig and artifact directories from it for its own use; every page writes them out the same way, so a run leaves your shell with nothing new to set.
64
+
**Nothing to paste afterwards.**`$SFI_PATH` is the only path variable this script needs, and [W2](../progression/W2-cloud-box-and-preflight.md) and [W3](../progression/W3-run-your-factory.md) both append it to a shell rc. The script works out the factory, rig and artifact directories from it for its own use; every page writes them out the same way, so a run leaves your shell with nothing new to set. The curriculum asks for a second one later, `$MY_RIG_PATH`, which [L1 step 1](../progression/L1-plan-your-factory.md#1-register-your-repo-as-a-rig) sets and persists. Every step this script rebuilds sits before that point.
Copy file name to clipboardExpand all lines: hardening/05-self-improvement-loop.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -28,7 +28,7 @@ Close the loop: your factory reads a signal it already produces, proposes a chan
28
28
-[W3](../progression/W3-run-your-factory.md) complete, and a factory that has been running long enough to have produced some evidence about itself.
29
29
-[W4](../progression/W4-tour-the-factory.md) complete, because the proposal will land in one of the layers and you need to be able to name which.
30
30
- Your [capability map](../progression/L2-capability-map.md) open.
31
-
-`$SFI_PATH` set in your shell. [W2](../progression/W2-cloud-box-and-preflight.md) and [W3](../progression/W3-run-your-factory.md)both append it to a shell rc, so it survives a new terminal. Every other path on this page is written out from it.
31
+
-`$SFI_PATH`and `$MY_RIG_PATH`set in your shell. [W2](../progression/W2-cloud-box-and-preflight.md) and [W3](../progression/W3-run-your-factory.md) append the first to a shell rc, [L1 step 1](../progression/L1-plan-your-factory.md#1-register-your-repo-as-a-rig) the second, so both survive a new terminal. Every other path on this page is written out from them.
32
32
33
33
**This option needs no other option.** It is a loop rather than a pack: nothing to install, and the signals it reads are ones your base factory already writes. Any other option you have installed gives it a richer signal, and none of them is required.
34
34
@@ -55,7 +55,7 @@ You do not need new instrumentation. Your factory has been writing evidence abou
55
55
**Copy and paste**
56
56
57
57
```bash
58
-
cd"$SFI_PATH/<your-rig-name>"
58
+
cd"$MY_RIG_PATH"
59
59
ls -la docs/reviews/ 2>/dev/null # per-principle scores, if you took that option
Copy file name to clipboardExpand all lines: progression/L1-plan-your-factory.md
+32-11Lines changed: 32 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -30,7 +30,7 @@ That set of documents is the input to [L2](./L2-capability-map.md), which starts
30
30
31
31
-[W3](./W3-run-your-factory.md) through [W5](./W5-observability.md) complete: a working factory you can read.
32
32
- A repository you can push to and are willing to let a factory open pull requests against. A personal project or a fork is ideal. A repository you do not control is not.
33
-
-`$SFI_PATH` set in your shell. [W2](./W2-cloud-box-and-preflight.md) and [W3](./W3-run-your-factory.md) both append it to a shell rc, so it survives a new terminal. Every other path on this page is written out from it.
33
+
-`$SFI_PATH` set in your shell. [W2](./W2-cloud-box-and-preflight.md) and [W3](./W3-run-your-factory.md) both append it to a shell rc, so it survives a new terminal. Step 1 derives `$MY_RIG_PATH` from it and persists that the same way; between them those two write out every path on this page.
34
34
35
35
## Context
36
36
@@ -60,7 +60,8 @@ Register the rig as a **sibling** of the city, the same shape [W3](./W3-run-your
60
60
cd"$SFI_PATH/factory1"
61
61
git clone <your-repo-url> ../<your-rig-name>
62
62
gc rig add ../<your-rig-name><your-rig-name>
63
-
ls "$SFI_PATH/<your-rig-name>"
63
+
export MY_RIG_PATH="$SFI_PATH/<your-rig-name>"
64
+
ls "$MY_RIG_PATH"
64
65
gc rig list
65
66
```
66
67
@@ -70,6 +71,26 @@ gc rig list
70
71
your rig listed alongside ascii-art, with a path and a prefix
71
72
```
72
73
74
+
That `export` is the last time you write your rig's path out by hand. Every page from here reaches it through `$MY_RIG_PATH` instead. Commands taking `--rig` still want the rig's *name*, which is a different thing and stays literal.
75
+
76
+
Now make the variable survive a new terminal, the same way [W2](./W2-cloud-box-and-preflight.md) made `$SFI_PATH` survive one. Append it to the rc file for your shell, on the machine your factory runs on:
77
+
78
+
**Copy and paste** (macOS / zsh)
79
+
80
+
```bash
81
+
cat <<EOF >> ~/.zshrc
82
+
export MY_RIG_PATH="$MY_RIG_PATH"
83
+
EOF
84
+
```
85
+
86
+
**Copy and paste** (Linux / bash, including the cloud box)
87
+
88
+
```bash
89
+
cat <<EOF >> ~/.bashrc
90
+
export MY_RIG_PATH="$MY_RIG_PATH"
91
+
EOF
92
+
```
93
+
73
94
Then install the base factory into it, so your own rig has the same machinery `ascii-art` does:
74
95
75
96
**Copy and paste**
@@ -86,9 +107,9 @@ A **project overview** is a loosely structured document answering a few question
One row per change you want to make. Each row names the change, which layer it touches, what it costs, and how you will know it worked.
@@ -86,14 +86,14 @@ A useful tiebreak: rank by how much you would trust the factory afterwards, not
86
86
Commit it:
87
87
88
88
```bash
89
-
cd"$SFI_PATH/<your-rig-name>"
89
+
cd"$MY_RIG_PATH"
90
90
git add docs/current/capability-map.md
91
91
git commit -m "Add capability map for factory changes"
92
92
```
93
93
94
94
### 4. Day 2: finish and review
95
95
96
-
Come back to the map with a night's distance. A new shell only needs `$SFI_PATH`, which [W2](./W2-cloud-box-and-preflight.md) and [W3](./W3-run-your-factory.md)both append to a shell rc; every path on this page and in the labs that follow is written out from it.
96
+
Come back to the map with a night's distance. A new shell needs `$SFI_PATH` and `$MY_RIG_PATH`. [W2](./W2-cloud-box-and-preflight.md) and [W3](./W3-run-your-factory.md) append the first to a shell rc and [L1 step 1](./L1-plan-your-factory.md#1-register-your-repo-as-a-rig) appends the second, so a Day 2 terminal opens with both; every path on this page and in the labs that follow is written out from them.
97
97
98
98
Then three things to do, in order:
99
99
@@ -114,9 +114,9 @@ The map is a factory design document that took two days of contact to write and
114
114
## Verification
115
115
116
116
```bash
117
-
test -f "$SFI_PATH/<your-rig-name>/docs/current/capability-map.md"&&echo"capability map: present"
Copy file name to clipboardExpand all lines: progression/L3-L5-feature-labs.md
+11-10Lines changed: 11 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -66,13 +66,14 @@ Every command below is written out from two variables:
66
66
| Variable | Points at | Set by |
67
67
| --- | --- | --- |
68
68
|`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 |
69
+
|`MY_RIG_PATH`| your own rig's directory |[L1 step 1](./L1-plan-your-factory.md#1-register-your-repo-as-a-rig), which appends it to a shell rc too |
69
70
70
-
Your factory is `$SFI_PATH/factory1` and your own rig is `$SFI_PATH/<your-rig-name>`. Nothing on this page asks you to export either.
71
+
Your factory is `$SFI_PATH/factory1` and your own rig is `$MY_RIG_PATH`. Nothing on this page asks you to export either; both were set and persisted on the pages that created them.
71
72
72
73
**Copy and paste**
73
74
74
75
```bash
75
-
cd"$SFI_PATH/factory1"&& gc rig list && ls "$SFI_PATH/<your-rig-name>"
76
+
cd"$SFI_PATH/factory1"&& gc rig list && ls "$MY_RIG_PATH"
76
77
```
77
78
78
79
**Expected output**
@@ -91,7 +92,7 @@ If `gc rig list` comes back without your rig, or the `ls` cannot find the direct
91
92
**Copy and paste**
92
93
93
94
```bash
94
-
cd"$SFI_PATH/<your-rig-name>"
95
+
cd"$MY_RIG_PATH"
95
96
cat docs/current/capability-map.md
96
97
```
97
98
@@ -166,21 +167,21 @@ Run the verification you wrote in the map's own column, not a different one that
166
167
**Copy and paste**
167
168
168
169
```bash
169
-
cd"$SFI_PATH/<your-rig-name>"
170
+
cd"$MY_RIG_PATH"
170
171
bd create --title "<a bead that exercises the change>" --type task --priority 2
The important part is the negative case. **A gate you have only seen pass is a gate you have not tested.** Construct the input that *should* be rejected and confirm it is:
177
178
178
179
```bash
179
-
cd"$SFI_PATH/<your-rig-name>"
180
+
cd"$MY_RIG_PATH"
180
181
bd create --title "<a bead your change should reject or catch>" --type task --priority 3
@@ -312,7 +313,7 @@ Across the three slots: at least one shipped option installed and working in you
312
313
cd"$SFI_PATH/factory1"
313
314
gc import list --rig <your-rig-name>
314
315
gc doctor
315
-
cd"$SFI_PATH/<your-rig-name>"
316
+
cd"$MY_RIG_PATH"
316
317
git log --oneline -3
317
318
bd list --status blocked
318
319
```
@@ -331,7 +332,7 @@ the bead you deliberately made fail, still blocked with a reason
331
332
-**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.
332
333
-**`gc import add` succeeds and the new agent never appears.** Check the scope. Options install at rig scope with `--rig`; installing at city scope puts the agent somewhere the rig cannot see.
333
334
-**You installed from a URL and the agent never appears.** Run `gc import install`. A remote import is recorded by `gc import add` and fetched by `gc import install`, and until the fetch happens there is nothing on disk for `gc reload` to read.
334
-
-**A command runs somewhere unexpected, or `ls` reports `cannot access '': No such file or directory`.**`$SFI_PATH` is unset in this shell. `cd ""` exits 0 in both bash and zsh, so an unset variable leaves you where you were rather than reporting an error. `echo "$SFI_PATH"` settles it; [W2](./W2-cloud-box-and-preflight.md) and [W3](./W3-run-your-factory.md)both append it to a shell rc, so a Day 2 shell that has lost it never ran that step.
335
+
-**A command runs somewhere unexpected, or `ls` reports `cannot access '': No such file or directory`.**`$SFI_PATH`or `$MY_RIG_PATH`is unset in this shell. `cd ""` exits 0 in both bash and zsh, so an unset variable leaves you where you were rather than reporting an error. `echo "$SFI_PATH" "$MY_RIG_PATH"` settles it; [W2](./W2-cloud-box-and-preflight.md) and [W3](./W3-run-your-factory.md) append the first to a shell rc and [L1 step 1](./L1-plan-your-factory.md#1-register-your-repo-as-a-rig) appends the second, so a Day 2 shell missing either never ran that step.
335
336
-**Your change works on `ascii-art` and not on your rig.** Your rig needs the base factory imported too — L1 step 1. `gc import list --rig <your-rig-name>` settles it.
336
337
-**The negative case passes when it should fail.** Either the input was better-formed than you thought, or the check is not on the path the bead took. Both are worth a map row.
Copy file name to clipboardExpand all lines: progression/W6-advanced-concepts.md
+7-7Lines changed: 7 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -36,7 +36,7 @@ Three ideas that only become interesting once a factory has been running for a w
36
36
37
37
- A factory from [W3](./W3-run-your-factory.md): the base factory installed on a rig of your own. That is the whole prerequisite, and every command on this page runs against it. A slot already spent in [L3](./L3-L5-feature-labs.md) gives part 1 more history to read, which makes for a better demonstration.
38
38
- Your capability map to hand.
39
-
-`$SFI_PATH` set in your shell. [W2](./W2-cloud-box-and-preflight.md) and [W3](./W3-run-your-factory.md)both append it to a shell rc, so it survives a new terminal. Every other path on this page is written out from it.
39
+
-`$SFI_PATH`and `$MY_RIG_PATH`set in your shell. [W2](./W2-cloud-box-and-preflight.md) and [W3](./W3-run-your-factory.md) append the first to a shell rc, [L1 step 1](./L1-plan-your-factory.md#1-register-your-repo-as-a-rig) the second, so both survive a new terminal. Every other path on this page is written out from them.
40
40
41
41
## Part 1: Self-improvement loops
42
42
@@ -85,7 +85,7 @@ So the loop has four parts and the fourth is not optional: read a signal, find a
Write one finding, in this shape: what you expected, what happened, what you would tell the next person. Three sentences is a complete entry. Then commit it:
183
183
184
184
```bash
185
-
cd"$SFI_PATH/<your-rig-name>"
185
+
cd"$MY_RIG_PATH"
186
186
git add docs/current/findings.md
187
187
git commit -m "Record first factory findings"
188
188
```
@@ -285,7 +285,7 @@ Rig scope, and it sits directly on the base factory. Now write a bead that descr
285
285
**Copy and paste**
286
286
287
287
```bash
288
-
cd"$SFI_PATH/<your-rig-name>"
288
+
cd"$MY_RIG_PATH"
289
289
bd create --title "Add row-level security to the reports table" --type task --priority 2 \
290
290
-d "Scope every read of the reports table to the caller's tenant."
291
291
cd"$SFI_PATH/factory1"
@@ -336,7 +336,7 @@ None of it is exotic machinery. Each one is an order, a fragment or a formula, a
336
336
cd"$SFI_PATH/factory1"
337
337
gc order list
338
338
gc order history
339
-
cd"$SFI_PATH/<your-rig-name>"
339
+
cd"$MY_RIG_PATH"
340
340
bd list --status blocked
341
341
test -f docs/current/findings.md &&echo"findings: present"
0 commit comments