@hraness/direct 0.7.7 → 0.7.8

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 CHANGED
@@ -1,21 +1,13 @@
1
- # direct
1
+ # Direct
2
2
 
3
3
  [![skills.sh](https://skills.sh/b/hraness/direct)](https://skills.sh/hraness/direct)
4
4
 
5
- a TypeScript harness for deterministic frontend development with repeatable
5
+ A TypeScript harness for deterministic frontend development with repeatable
6
6
  scenarios, local fixtures, and browser verification for coding agents.
7
-
8
- name signed-in, empty, error, and other hard-to-reach app states once, then let
9
- coding agents open them by URL during development. your interface and feature
10
- code run normally. direct replaces only the outside systems needed for that
11
- state with predictable local fixtures. it does not click through the browser
12
- or test the systems it replaces.
13
-
14
- ```sh
15
- bun add --dev @hraness/direct@0.7.7
16
- # or
17
- npm install --save-dev @hraness/direct@0.7.7
18
- ```
7
+ Direct makes hard-to-reach frontend states addressable by URL. It runs your real
8
+ interface and feature code against named, validated local fixture worlds, so
9
+ signed-in, empty, and error states are repeatable without clicking through setup
10
+ or depending on live systems.
19
11
 
20
12
  [Install @hraness/direct from npm](https://www.npmjs.com/package/@hraness/direct) ·
21
13
  [Direct source on GitHub](https://github.com/hraness/direct) ·
@@ -30,16 +22,58 @@ real interface and feature state
30
22
  adapter harness
31
23
  ```
32
24
 
25
+ ## Why Direct
26
+
27
+ - **Keep product behavior real.** The interface and feature logic keep using a
28
+ product-owned port. Only the external adapters needed for the scenario are
29
+ replaced. Direct does not automate browser actions, and fixture evidence does
30
+ not prove those live systems.
31
+ - **Know when the page settled.** A versioned browser contract exposes the
32
+ active scenario, coverage catalog, and deterministic activity probe. A quiet
33
+ probe says declared work settled; product-owned assertions must still decide
34
+ whether the result is correct.
35
+
33
36
  ## Install
34
37
 
35
- ### Install the Agent Skill
38
+ Pin Direct as a development dependency:
39
+
40
+ ```sh
41
+ bun add --dev @hraness/direct@0.7.8
42
+ # or
43
+ npm install --save-dev @hraness/direct@0.7.8
44
+ ```
45
+
46
+ Keep Direct in `devDependencies`. A production entry must not import Direct,
47
+ its fixture worlds, or its workbench.
48
+
49
+ ## Open one deterministic state
50
+
51
+ The repository's Todo example runs the same React interface against a Direct
52
+ composition. It requires Git and Bun 1.3.14, then downloads the source and its
53
+ development dependencies:
54
+
55
+ ```sh
56
+ git clone --branch v0.7.8 --depth 1 https://github.com/hraness/direct.git
57
+ cd direct
58
+ bun install --frozen-lockfile --ignore-scripts
59
+ bun run example:direct
60
+ ```
61
+
62
+ Open
63
+ [`http://127.0.0.1:5173/direct/?__direct_scenario=todos.populated`](http://127.0.0.1:5173/direct/?__direct_scenario=todos.populated).
64
+ The page starts with the named populated world and stays available for browser
65
+ inspection. The example reserves that exact local address and exits instead of
66
+ silently choosing another port when it is occupied. Stop the development server
67
+ when the review is complete.
68
+
69
+ ## Install the Agent Skill
36
70
 
37
71
  Install Direct's single bundled skill from the public repository:
38
72
 
39
73
  ```sh
40
- npx skills add hraness/direct
74
+ npx skills add hraness/direct#v0.7.8
41
75
  # or
42
- bunx skills add hraness/direct
76
+ bunx skills add hraness/direct#v0.7.8
43
77
  ```
44
78
 
45
79
  The skill is invoked as `$direct`. It routes installation, adoption, and
@@ -53,7 +87,7 @@ Copy this prompt into Codex, Claude Code, or another coding agent:
53
87
 
54
88
  ```text
55
89
  Use $direct to install hraness/direct from
56
- the npm registry at the exact 0.7.7 version. Follow the repository README, add
90
+ the npm registry at the exact 0.7.8 version. Follow the repository README, add
57
91
  `@hraness/direct` to devDependencies only, and verify that the production
58
92
  dependency graph excludes Direct. Do not add a fixture composition until I
59
93
  ask.
@@ -69,7 +103,7 @@ Pin the public npm package to an exact immutable version:
69
103
  ```json
70
104
  {
71
105
  "devDependencies": {
72
- "@hraness/direct": "0.7.7"
106
+ "@hraness/direct": "0.7.8"
73
107
  }
74
108
  }
75
109
  ```
@@ -82,8 +116,6 @@ bun install
82
116
  npm install
83
117
  ```
84
118
 
85
- Keep Direct in `devDependencies`. A production entry must not import Direct, its fixture worlds, or its workbench.
86
-
87
119
  ## Agent skills
88
120
 
89
121
  Packages built from this source include one Agent Skill under
@@ -93,11 +125,11 @@ quiescence, coverage claims, cleanup, and emitted production boundaries. The
93
125
  package smoke test keeps that future packaged copy byte-identical to the
94
126
  repository skill.
95
127
 
96
- Prefer `npx skills add hraness/direct` or `bunx skills add hraness/direct` for
97
- runner discovery. You can also copy or link that one skill directory into a
98
- runner's configured location, then invoke `$direct`. Package installation
99
- leaves the skill inert: it does not run a `postinstall` hook or edit repository
100
- or user configuration.
128
+ Prefer `npx skills add hraness/direct#v0.7.8` or
129
+ `bunx skills add hraness/direct#v0.7.8` for runner discovery. You can also copy
130
+ or link that one skill directory into a runner's configured location, then
131
+ invoke `$direct`. Package installation leaves the skill inert: it does not run
132
+ a `postinstall` hook or edit repository or user configuration.
101
133
 
102
134
  ## A complete browser composition
103
135
 
@@ -191,7 +223,11 @@ and Chromium roots, or one containing job; the roots can occupy different
191
223
  process groups. Direct supplies neither that supervisor nor browser or
192
224
  performance evidence.
193
225
 
194
- See the [Todo example](https://github.com/hraness/direct/tree/main/examples/todos) for a strict parser, product-owned port, React workbench, and emitted-graph boundary verifier. The [React Native example](https://github.com/hraness/direct/tree/main/examples/react-native) uses the same session model in a platform-resolved Expo composition while keeping native production graphs Direct-free.
226
+ See the [Todo example](examples/todos) for a strict parser, product-owned port,
227
+ React workbench, and emitted-graph boundary verifier. The
228
+ [React Native example](examples/react-native) uses the same session model in a
229
+ platform-resolved Expo composition while keeping native production graphs
230
+ Direct-free.
195
231
 
196
232
  ## Keep evidence honest
197
233
 
@@ -370,7 +406,9 @@ agent-browser or Playwright
370
406
 
371
407
  A Direct world is validated JSON that describes one starting state. A scenario gives that world a name and route. It does not contain browser actions. The browser check still decides what to click and what outcome to assert.
372
408
 
373
- The [public Todo example](<https://github.com/hraness/direct/tree/main/examples/todos>) uses one `TodoPort` in both compositions. The component receives whichever implementation the entry point owns:
409
+ The [public Todo example](examples/todos) uses one `TodoPort` in both
410
+ compositions. The component receives whichever implementation the entry point
411
+ owns:
374
412
 
375
413
  **One product port, two compositions**
376
414
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hraness/direct",
3
- "version": "0.7.7",
3
+ "version": "0.7.8",
4
4
  "description": "A TypeScript harness for deterministic frontend development with repeatable scenarios, local fixtures, and browser verification for coding agents.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -21,9 +21,9 @@ global `direct` CLI.
21
21
  For a new installation, pin the reviewed public release:
22
22
 
23
23
  ```sh
24
- bun add --dev @hraness/direct@0.7.7
24
+ bun add --dev @hraness/direct@0.7.8
25
25
  # or, in an npm project
26
- npm install --save-dev @hraness/direct@0.7.7
26
+ npm install --save-dev @hraness/direct@0.7.8
27
27
  ```
28
28
 
29
29
  The equivalent manifest entry is:
@@ -31,7 +31,7 @@ The equivalent manifest entry is:
31
31
  ```json
32
32
  {
33
33
  "devDependencies": {
34
- "@hraness/direct": "0.7.7"
34
+ "@hraness/direct": "0.7.8"
35
35
  }
36
36
  }
37
37
  ```
@@ -43,8 +43,8 @@ If the task starts with skill installation rather than a loaded skill, install
43
43
  the single repository skill with either command:
44
44
 
45
45
  ```sh
46
- npx skills add hraness/direct
47
- bunx skills add hraness/direct
46
+ npx skills add hraness/direct#v0.7.8
47
+ bunx skills add hraness/direct#v0.7.8
48
48
  ```
49
49
 
50
50
  Restart or reload the agent runner if it does not discover newly installed