relay-workflow 2.0.1 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -36,20 +36,34 @@ are available:
|
|
|
36
36
|
<python> -c "import IPython; v=tuple(int(x) for x in IPython.__version__.split('.')[:2]); assert v>=(7,0), f'IPython 7+ required for top-level await, found {IPython.__version__}'"
|
|
37
37
|
```
|
|
38
38
|
If the IPython check fails, upgrade before proceeding:
|
|
39
|
-
|
|
39
|
+
`<python> -m pip install --upgrade ipython ipykernel`
|
|
40
40
|
|
|
41
|
-
2.
|
|
41
|
+
2. Register the virtual environment as a Jupyter kernel so notebooks
|
|
42
|
+
can find it (both for programmatic execution and IDE use):
|
|
43
|
+
```
|
|
44
|
+
<python> -m ipykernel install --user --name=<project> --display-name="<project> (.venv)"
|
|
45
|
+
```
|
|
46
|
+
Where `<project>` is the project directory name (basename of the
|
|
47
|
+
working directory, e.g., `mnemos2`, `my-app`). If no venv exists
|
|
48
|
+
(system Python), skip this step — the default `python3` kernel works.
|
|
49
|
+
|
|
50
|
+
Verify the kernel is registered:
|
|
51
|
+
```
|
|
52
|
+
<python> -m jupyter kernelspec list
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
3. If all checks pass (deps importable + kernel registered), proceed to Part A.
|
|
42
56
|
|
|
43
|
-
|
|
57
|
+
4. If deps are NOT available:
|
|
44
58
|
a. Look for an existing virtual environment (`.venv/`, `venv/`, or
|
|
45
59
|
check if already running inside one via `sys.prefix != sys.base_prefix`).
|
|
46
60
|
b. If a venv exists: activate it and run
|
|
47
|
-
|
|
61
|
+
`<python> -m pip install nbclient nbformat nbconvert ipython ipykernel`, then proceed to Part A.
|
|
48
62
|
c. If no venv exists but Python 3 is available: ask the user before
|
|
49
63
|
installing globally: "No virtual environment found. Install
|
|
50
64
|
notebook dependencies into the system Python? (Or create a
|
|
51
65
|
venv first with `<python> -m venv .venv`)"
|
|
52
|
-
If the user approves, run
|
|
66
|
+
If the user approves, run `<python> -m pip install nbclient nbformat nbconvert ipython ipykernel`,
|
|
53
67
|
then proceed to Part A.
|
|
54
68
|
d. If Python 3 is not available: tell the user
|
|
55
69
|
"Python 3 is required for verification notebooks. Install Python 3
|
|
@@ -62,6 +76,19 @@ Naming: Use the SAME name as the issue/feature file, but with .ipynb
|
|
|
62
76
|
extension instead of .md.
|
|
63
77
|
e.g., `delete_entity_not_atomic.md` → `delete_entity_not_atomic.ipynb`
|
|
64
78
|
|
|
79
|
+
Kernel metadata: Set the notebook's `kernelspec` to the kernel registered
|
|
80
|
+
in Part 0 step 2. In the notebook JSON metadata:
|
|
81
|
+
```json
|
|
82
|
+
"kernelspec": {
|
|
83
|
+
"name": "<project>",
|
|
84
|
+
"display_name": "<project> (.venv)",
|
|
85
|
+
"language": "python"
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
If no venv was registered (system Python), use `"name": "python3"` instead.
|
|
89
|
+
This ensures both programmatic execution and IDE opening use the correct
|
|
90
|
+
Python environment.
|
|
91
|
+
|
|
65
92
|
For each issue/feature file in the phase:
|
|
66
93
|
|
|
67
94
|
1. HEADER CELL (markdown):
|
|
@@ -169,6 +196,15 @@ For each issue/feature file in the phase:
|
|
|
169
196
|
|
|
170
197
|
## Part B — Run, Validate, and Iterate
|
|
171
198
|
|
|
199
|
+
**Execution method**: Execute the notebook **in-place** so cell outputs are
|
|
200
|
+
persisted in the source `.ipynb` file. Use one of these approaches:
|
|
201
|
+
- **Preferred**: `<python> -m jupyter nbconvert --to notebook --execute --inplace <notebook>.ipynb`
|
|
202
|
+
- **Alternative**: Use `nbclient` programmatically — load with `nbformat.read()`,
|
|
203
|
+
execute with `nbclient.NotebookClient(...).execute()`, write back with
|
|
204
|
+
`nbformat.write()` to the **same file path**.
|
|
205
|
+
- **NEVER** use `--output-dir` pointing to a temp directory — this discards
|
|
206
|
+
outputs from the source notebook.
|
|
207
|
+
|
|
172
208
|
After creating the notebook, execute every cell sequentially. For each cell
|
|
173
209
|
that errors or produces a FAIL:
|
|
174
210
|
|
|
@@ -29,14 +29,14 @@ Create this file to track the installed Relay version:
|
|
|
29
29
|
|
|
30
30
|
| Field | Value |
|
|
31
31
|
|-------|-------|
|
|
32
|
-
| **Version** | 2.0.
|
|
32
|
+
| **Version** | 2.0.2 |
|
|
33
33
|
| **Installed** | [YYYY-MM-DD] |
|
|
34
34
|
| **Source** | https://github.com/momobits/Relay |
|
|
35
35
|
| **Format** | skills |
|
|
36
36
|
|
|
37
37
|
## Changelog
|
|
38
38
|
|
|
39
|
-
### 2.0.
|
|
39
|
+
### 2.0.2 — Skills-based workflow
|
|
40
40
|
- Converted 14 prompts to Claude Code skills plus new `/relay-help` navigation skill (15 total)
|
|
41
41
|
- Added `/relay-help` navigation skill
|
|
42
42
|
- Skills are auto-discovered — no more `@file.md` references
|
|
@@ -275,12 +275,21 @@ resolved phase). The skills /relay-review, /relay-verify, and
|
|
|
275
275
|
`ipykernel` to execute. Set these up now so notebooks work when
|
|
276
276
|
you reach the code pipeline:
|
|
277
277
|
|
|
278
|
-
a.
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
278
|
+
a. Determine the correct Python command for this platform:
|
|
279
|
+
- If a virtual environment exists (`.venv/`, `venv/`): use its
|
|
280
|
+
Python directly (e.g., `.venv/Scripts/python` on Windows,
|
|
281
|
+
`.venv/bin/python` on Linux/macOS)
|
|
282
|
+
- Otherwise: try `python3` first, fall back to `python`
|
|
283
|
+
Use whichever works for ALL subsequent Python/pip commands.
|
|
284
|
+
b. Check if Python 3 is available using the resolved command.
|
|
285
|
+
c. Check for an existing virtual environment.
|
|
286
|
+
d. Install all notebook dependencies:
|
|
287
|
+
`<python> -m pip install nbclient nbformat nbconvert ipython ipykernel`
|
|
288
|
+
e. Register the venv as a Jupyter kernel (skip if no venv):
|
|
289
|
+
`<python> -m ipykernel install --user --name=<project> --display-name="<project> (.venv)"`
|
|
290
|
+
Where `<project>` is the project directory name.
|
|
291
|
+
f. Confirm the install succeeded (import all five packages).
|
|
292
|
+
g. Ask if the user wants these added to the project's dev dependencies.
|
|
284
293
|
|
|
285
294
|
## Navigation
|
|
286
295
|
When setup is complete, tell the user:
|
package/README.md
CHANGED
package/package.json
CHANGED