@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 +66 -28
- package/package.json +1 -1
- package/skills/direct/references/install.md +5 -5
package/README.md
CHANGED
|
@@ -1,21 +1,13 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Direct
|
|
2
2
|
|
|
3
3
|
[](https://skills.sh/hraness/direct)
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
A TypeScript harness for deterministic frontend development with repeatable
|
|
6
6
|
scenarios, local fixtures, and browser verification for coding agents.
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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
|
|
97
|
-
runner discovery. You can also copy
|
|
98
|
-
runner's configured location, then
|
|
99
|
-
leaves the skill inert: it does not run
|
|
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](
|
|
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](
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|