@neonwatty/limner 0.1.0 → 0.1.1
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 +32 -17
- package/dist/cli.js +3 -3
- package/dist/cli.js.map +1 -1
- package/dist/core/report-writer.js +1 -1
- package/dist/core/report-writer.js.map +1 -1
- package/dist/core/visual-spec-prompts.js +2 -2
- package/dist/core/visual-spec-prompts.js.map +1 -1
- package/docs/agent-workflow.md +5 -5
- package/package.json +2 -2
- package/skills/limner/SKILL.md +5 -5
- package/templates/target/AGENT_GUIDE.md +2 -2
package/README.md
CHANGED
|
@@ -6,7 +6,22 @@ Limner is model-agnostic. It does not call a vision model and it does not produc
|
|
|
6
6
|
|
|
7
7
|
The optional visual spec workflow is agent-required. Limner can prepare the prompt pack and validate structured agent output, but it does not extract that spec on its own.
|
|
8
8
|
|
|
9
|
-
## Install
|
|
9
|
+
## Install
|
|
10
|
+
|
|
11
|
+
Use the published CLI:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm install -g @neonwatty/limner
|
|
15
|
+
limner --help
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Or run it without a global install:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
npx @neonwatty/limner --help
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Install from source for development:
|
|
10
25
|
|
|
11
26
|
```bash
|
|
12
27
|
npm install
|
|
@@ -36,14 +51,14 @@ npm run check
|
|
|
36
51
|
## Basic Workflow
|
|
37
52
|
|
|
38
53
|
```bash
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
54
|
+
limner init ./ideal.png --target replay-boundaries
|
|
55
|
+
limner preview --target replay-boundaries
|
|
56
|
+
limner capture reference --target replay-boundaries
|
|
57
|
+
limner compare image-reference --target replay-boundaries
|
|
58
|
+
limner compare image-app --target replay-boundaries --url http://localhost:3152/internal/optimization-lab/wedding-envelope#replay-boundaries --storage-state ./e2e/.auth/user.json
|
|
59
|
+
limner compare reference-app --target replay-boundaries --url http://localhost:3152/internal/optimization-lab/wedding-envelope#replay-boundaries --storage-state ./e2e/.auth/user.json
|
|
60
|
+
limner report --target replay-boundaries
|
|
61
|
+
limner runs list
|
|
47
62
|
```
|
|
48
63
|
|
|
49
64
|
## Workspace Shape
|
|
@@ -72,9 +87,9 @@ limner-workspace/
|
|
|
72
87
|
Use this while recreating the input image in standalone HTML/CSS.
|
|
73
88
|
|
|
74
89
|
```bash
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
90
|
+
limner compare image-reference --target replay-boundaries
|
|
91
|
+
limner compare image-reference --target replay-boundaries --spec
|
|
92
|
+
limner compare image-reference --target replay-boundaries --spec --spec-instructions ./visual-spec-policy.md
|
|
78
93
|
```
|
|
79
94
|
|
|
80
95
|
Outputs:
|
|
@@ -114,7 +129,7 @@ Use this for quick grounding checks against a real app before or during reconstr
|
|
|
114
129
|
It compares the source image directly to a captured app viewport.
|
|
115
130
|
|
|
116
131
|
```bash
|
|
117
|
-
|
|
132
|
+
limner compare image-app --target replay-boundaries --url http://localhost:3152/... --storage-state ./e2e/.auth/user.json
|
|
118
133
|
```
|
|
119
134
|
|
|
120
135
|
Outputs:
|
|
@@ -128,7 +143,7 @@ Outputs:
|
|
|
128
143
|
Use this after the reference HTML is approved and the real app needs to match it.
|
|
129
144
|
|
|
130
145
|
```bash
|
|
131
|
-
|
|
146
|
+
limner compare reference-app --target replay-boundaries --url http://localhost:3152/... --storage-state ./e2e/.auth/user.json
|
|
132
147
|
```
|
|
133
148
|
|
|
134
149
|
Outputs:
|
|
@@ -155,7 +170,7 @@ Limner writes local structured logs only. There is no remote telemetry.
|
|
|
155
170
|
Use:
|
|
156
171
|
|
|
157
172
|
```bash
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
173
|
+
limner runs list
|
|
174
|
+
limner runs show <run-id>
|
|
175
|
+
limner runs summarize
|
|
161
176
|
```
|
package/dist/cli.js
CHANGED
|
@@ -8,9 +8,9 @@ import { registerReportCommand } from './commands/report.js';
|
|
|
8
8
|
import { registerRunsCommand } from './commands/runs.js';
|
|
9
9
|
const program = new Command();
|
|
10
10
|
program
|
|
11
|
-
.name('
|
|
11
|
+
.name('limner')
|
|
12
12
|
.description('Agent-guided visual fidelity workbench')
|
|
13
|
-
.version('0.1.
|
|
13
|
+
.version('0.1.1')
|
|
14
14
|
.option('-w, --workspace <path>', 'Limner workspace root', process.cwd());
|
|
15
15
|
registerInitCommand(program);
|
|
16
16
|
registerPreviewCommand(program);
|
|
@@ -20,7 +20,7 @@ registerReportCommand(program);
|
|
|
20
20
|
registerRunsCommand(program);
|
|
21
21
|
program.parseAsync(process.argv).catch((error) => {
|
|
22
22
|
const message = error instanceof Error ? error.message : String(error);
|
|
23
|
-
console.error(`
|
|
23
|
+
console.error(`limner: ${message}`);
|
|
24
24
|
process.exitCode = 1;
|
|
25
25
|
});
|
|
26
26
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CAAC,wCAAwC,CAAC;KACrD,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,wBAAwB,EAAE,uBAAuB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AAE5E,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAE7B,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IACxD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,CAAC,KAAK,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC;IACpC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
|
|
@@ -150,7 +150,7 @@ function formatAgentSpecStatus(agentSpec) {
|
|
|
150
150
|
|
|
151
151
|
- Agent-required spec pack generated.
|
|
152
152
|
- Next step: have an agent inspect the ideal image and reference artifacts, then write \`captures/image-reference/spec/agent-response.json\`.
|
|
153
|
-
- Rerun \`
|
|
153
|
+
- Rerun \`limner compare image-reference --target <target> --spec\` after the response file exists.`;
|
|
154
154
|
}
|
|
155
155
|
if (agentSpec.status === 'invalid') {
|
|
156
156
|
const errors = agentSpec.validationErrors?.map((error) => `- ${error}`).join('\n') ?? '- Unknown validation error.';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report-writer.js","sourceRoot":"","sources":["../../src/core/report-writer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"report-writer.js","sourceRoot":"","sources":["../../src/core/report-writer.ts"],"names":[],"mappings":"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"}
|
|
@@ -79,7 +79,7 @@ Use Codex when you want the agent to read local files and write the response dir
|
|
|
79
79
|
3. Write that JSON to:
|
|
80
80
|
- \`${rel(input.responsePath)}\`
|
|
81
81
|
4. Rerun:
|
|
82
|
-
- \`
|
|
82
|
+
- \`limner compare image-reference --target ${input.target.name} --spec\`
|
|
83
83
|
|
|
84
84
|
## Notes
|
|
85
85
|
|
|
@@ -112,7 +112,7 @@ Use Claude when you want a multimodal agent to compare the ideal image and the r
|
|
|
112
112
|
4. Save Claude's JSON response to:
|
|
113
113
|
- \`${rel(input.responsePath)}\`
|
|
114
114
|
5. Rerun:
|
|
115
|
-
- \`
|
|
115
|
+
- \`limner compare image-reference --target ${input.target.name} --spec\`
|
|
116
116
|
|
|
117
117
|
## Notes
|
|
118
118
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visual-spec-prompts.js","sourceRoot":"","sources":["../../src/core/visual-spec-prompts.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,MAAM,UAAU,iBAAiB,CAAC,KAUjC;IACC,MAAM,GAAG,GAAG,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9C,OAAO;;;;;;;;IAQL,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC;;;;IAIvB,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC;;;;IAItB,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;;;;mBAIN,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC;4BACxB,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC;oBAChC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC;sBACvB,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC;qBACpC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC;cACzC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC;wBAClB,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC;iBACvC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;mBAClB,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;2BACb,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC;;;;;;;;;;;;;;;EAepD,KAAK,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,kCAAkC;;;;;;;;;;;CAWtE,CAAC;AACF,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAShC;IACC,MAAM,GAAG,GAAG,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9C,OAAO;;;;;;;SAOA,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC;SACjC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC;SACxB,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC;SACzB,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC;SACnC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC;SAClC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;SACpB,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;SACrB,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC;;;SAG3B,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC
|
|
1
|
+
{"version":3,"file":"visual-spec-prompts.js","sourceRoot":"","sources":["../../src/core/visual-spec-prompts.ts"],"names":[],"mappings":"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"}
|
package/docs/agent-workflow.md
CHANGED
|
@@ -4,12 +4,12 @@ Limner is designed for agent-in-the-loop visual fidelity work.
|
|
|
4
4
|
|
|
5
5
|
## Phase 1: Image To Reference
|
|
6
6
|
|
|
7
|
-
1. Run `
|
|
7
|
+
1. Run `limner init <image> --target <name>`.
|
|
8
8
|
2. Inspect `targets/<name>/source/`.
|
|
9
9
|
3. Edit `contract/regions.json`, `contract/tokens.json`, and `contract/acceptance.md`.
|
|
10
10
|
4. Rebuild `reference/index.html` and `reference/styles.css` as a faithful HTML facsimile.
|
|
11
|
-
5. Run `
|
|
12
|
-
6. Optional: run `
|
|
11
|
+
5. Run `limner compare image-reference --target <name>`.
|
|
12
|
+
6. Optional: run `limner compare image-reference --target <name> --spec` to generate an agent-required visual spec prompt pack.
|
|
13
13
|
7. Edit `contract/visual-spec-instructions.md` for target-specific prompt guidance, or pass `--spec-instructions <path>` for a shared prompt policy.
|
|
14
14
|
8. If using Codex, start from `captures/image-reference/spec/agent-prompt.codex.md`.
|
|
15
15
|
9. If using Claude, start from `captures/image-reference/spec/agent-prompt.claude.md` and attach the images it references.
|
|
@@ -22,7 +22,7 @@ Limner is designed for agent-in-the-loop visual fidelity work.
|
|
|
22
22
|
## Phase 2: Reference To App
|
|
23
23
|
|
|
24
24
|
1. Add app selectors to `contract/regions.json`.
|
|
25
|
-
2. Run `
|
|
25
|
+
2. Run `limner compare reference-app --target <name> --url <app-url>`.
|
|
26
26
|
3. Open `captures/reference-app/side-by-side.png`.
|
|
27
27
|
4. Inspect `captures/reference-app/dom-metrics.json`.
|
|
28
28
|
5. Record app repair steps in `reports/reference-app.md`.
|
|
@@ -33,7 +33,7 @@ Limner is designed for agent-in-the-loop visual fidelity work.
|
|
|
33
33
|
Use this when you need to confirm that the app URL, authentication state, and viewport are correct before building the HTML reference.
|
|
34
34
|
|
|
35
35
|
```bash
|
|
36
|
-
|
|
36
|
+
limner compare image-app --target <name> --url <app-url> --storage-state ./e2e/.auth/user.json
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
This is not a replacement for Phase 1. For design reconstruction work, first recreate the generated image in `reference/index.html` and compare with `image-reference`.
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@neonwatty/limner",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Agent-guided visual fidelity workbench for turning images into HTML references and comparing references to real apps.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
|
-
"
|
|
7
|
+
"limner": "dist/cli.js"
|
|
8
8
|
},
|
|
9
9
|
"files": [
|
|
10
10
|
"dist",
|
package/skills/limner/SKILL.md
CHANGED
|
@@ -9,17 +9,17 @@ Use Limner for structured visual fidelity loops.
|
|
|
9
9
|
|
|
10
10
|
## Image To Reference
|
|
11
11
|
|
|
12
|
-
1. Run `
|
|
12
|
+
1. Run `limner init <image> --target <name>` if the target does not exist.
|
|
13
13
|
2. Inspect `source/ideal.png`.
|
|
14
14
|
3. Fill `contract/regions.json`, `contract/tokens.json`, and `contract/acceptance.md`.
|
|
15
15
|
4. Edit `reference/index.html` and `reference/styles.css`.
|
|
16
|
-
5. Run `
|
|
16
|
+
5. Run `limner compare image-reference --target <name>`.
|
|
17
17
|
6. Review `captures/image-reference/side-by-side.png`.
|
|
18
18
|
7. Record findings in `reports/image-reference.md`.
|
|
19
19
|
|
|
20
20
|
Optional structured spec layer:
|
|
21
21
|
|
|
22
|
-
- Run `
|
|
22
|
+
- Run `limner compare image-reference --target <name> --spec`.
|
|
23
23
|
- Edit `contract/visual-spec-instructions.md` to customize the agent prompt for this target, or pass `--spec-instructions <path>` for a shared policy file.
|
|
24
24
|
- Use `captures/image-reference/spec/agent-prompt.codex.md` for Codex or `captures/image-reference/spec/agent-prompt.claude.md` for Claude.
|
|
25
25
|
- Use the generated `captures/image-reference/spec/agent-response.schema.json` for strict structured output when the agent supports it.
|
|
@@ -31,14 +31,14 @@ Optional structured spec layer:
|
|
|
31
31
|
|
|
32
32
|
1. Confirm the reference HTML is approved.
|
|
33
33
|
2. Ensure every important region has both `referenceSelector` and `appSelector`.
|
|
34
|
-
3. Run `
|
|
34
|
+
3. Run `limner compare reference-app --target <name> --url <app-url>`.
|
|
35
35
|
4. Review `captures/reference-app/side-by-side.png` and `dom-metrics.json`.
|
|
36
36
|
5. Use the report to drive one scoped app fix.
|
|
37
37
|
6. Rerun after the fix.
|
|
38
38
|
|
|
39
39
|
## Image To App Grounding
|
|
40
40
|
|
|
41
|
-
Use `
|
|
41
|
+
Use `limner compare image-app --target <name> --url <app-url>` to compare the source image directly to an app screenshot.
|
|
42
42
|
|
|
43
43
|
Add `--storage-state <path>` for authenticated pages and `--full-page` only when a full-page screenshot is intended. The default is viewport-only.
|
|
44
44
|
|
|
@@ -7,7 +7,7 @@ Use this target folder as a structured workbench for visual fidelity.
|
|
|
7
7
|
1. Inspect `source/ideal.png`.
|
|
8
8
|
2. Fill out `contract/regions.json`, `contract/tokens.json`, and `contract/acceptance.md`.
|
|
9
9
|
3. Edit `reference/index.html` and `reference/styles.css` until the reference is a faithful HTML facsimile.
|
|
10
|
-
4. Run `
|
|
10
|
+
4. Run `limner compare image-reference --target <target>`.
|
|
11
11
|
5. Review `captures/image-reference/side-by-side.png` and `reports/image-reference.md`.
|
|
12
12
|
6. Record remaining mismatches or intentional deviations.
|
|
13
13
|
|
|
@@ -15,7 +15,7 @@ Use this target folder as a structured workbench for visual fidelity.
|
|
|
15
15
|
|
|
16
16
|
1. Treat the reference HTML as the approved design.
|
|
17
17
|
2. Add app selectors to `contract/regions.json`.
|
|
18
|
-
3. Run `
|
|
18
|
+
3. Run `limner compare reference-app --target <target> --url <app-url>`.
|
|
19
19
|
4. Review screenshots, DOM metrics, and `reports/reference-app.md`.
|
|
20
20
|
5. Fix the app, rerun the comparison, and keep notes in the report.
|
|
21
21
|
|