@neonwatty/limner 0.1.7 → 0.1.9

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.
Files changed (60) hide show
  1. package/README.md +7 -31
  2. package/dist/commands/compare-image-reference.d.ts +1 -0
  3. package/dist/commands/compare-image-reference.js +4 -0
  4. package/dist/commands/compare-image-reference.js.map +1 -1
  5. package/dist/commands/compare-output.js +1 -1
  6. package/dist/commands/compare-output.js.map +1 -1
  7. package/dist/commands/compare.d.ts +1 -0
  8. package/dist/commands/compare.js +4 -12
  9. package/dist/commands/compare.js.map +1 -1
  10. package/dist/commands/loop-cli.js +35 -2
  11. package/dist/commands/loop-cli.js.map +1 -1
  12. package/dist/commands/loop-comparison-adapters.d.ts +1 -0
  13. package/dist/commands/loop-comparison-adapters.js +7 -2
  14. package/dist/commands/loop-comparison-adapters.js.map +1 -1
  15. package/dist/commands/loop-response.d.ts +31 -0
  16. package/dist/commands/loop-response.js +84 -0
  17. package/dist/commands/loop-response.js.map +1 -0
  18. package/dist/commands/loop-task.js +24 -3
  19. package/dist/commands/loop-task.js.map +1 -1
  20. package/dist/commands/loop.d.ts +11 -0
  21. package/dist/commands/loop.js +22 -8
  22. package/dist/commands/loop.js.map +1 -1
  23. package/dist/core/agent-comparison-fingerprint.js +1 -0
  24. package/dist/core/agent-comparison-fingerprint.js.map +1 -1
  25. package/dist/core/agent-comparison-pack.d.ts +5 -1
  26. package/dist/core/agent-comparison-pack.js +17 -100
  27. package/dist/core/agent-comparison-pack.js.map +1 -1
  28. package/dist/core/agent-comparison-prompts.d.ts +1 -1
  29. package/dist/core/agent-comparison-prompts.js +4 -4
  30. package/dist/core/agent-comparison-prompts.js.map +1 -1
  31. package/dist/core/agent-comparison-report.js +2 -2
  32. package/dist/core/agent-comparison-report.js.map +1 -1
  33. package/dist/core/agent-comparison-response.d.ts +0 -18
  34. package/dist/core/agent-comparison-response.js +1 -33
  35. package/dist/core/agent-comparison-response.js.map +1 -1
  36. package/dist/core/agent-comparison-submit.d.ts +35 -0
  37. package/dist/core/agent-comparison-submit.js +113 -0
  38. package/dist/core/agent-comparison-submit.js.map +1 -0
  39. package/dist/core/agent-task-brief.d.ts +4 -1
  40. package/dist/core/agent-task-brief.js +11 -2
  41. package/dist/core/agent-task-brief.js.map +1 -1
  42. package/dist/core/comparison-artifacts.js +3 -8
  43. package/dist/core/comparison-artifacts.js.map +1 -1
  44. package/dist/core/ledger-agent-responses.d.ts +1 -0
  45. package/dist/core/ledger-agent-responses.js +3 -3
  46. package/dist/core/ledger-agent-responses.js.map +1 -1
  47. package/dist/core/ledger-db.js +2 -0
  48. package/dist/core/ledger-db.js.map +1 -1
  49. package/dist/core/ledger-markdown.js +1 -1
  50. package/dist/core/ledger-markdown.js.map +1 -1
  51. package/dist/core/ledger-queries.js +2 -1
  52. package/dist/core/ledger-queries.js.map +1 -1
  53. package/dist/core/report-writer.js +1 -1
  54. package/docs/agent-workflow.md +14 -16
  55. package/docs/archive/visual-spec-workflow.md +23 -0
  56. package/docs/goals/db-native-agent-responses/goal.md +91 -0
  57. package/docs/goals/db-native-agent-responses/state.yaml +240 -0
  58. package/package.json +1 -1
  59. package/skills/limner/SKILL.md +11 -21
  60. package/templates/target/AGENT_GUIDE.md +4 -4
@@ -0,0 +1,113 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { writeFile } from 'node:fs/promises';
3
+ import path from 'node:path';
4
+ import { agentComparisonBundleSchema, } from '../schemas/comparison.js';
5
+ import { validateFixTargets } from './agent-comparison-validation.js';
6
+ export async function submitAgentComparisonResponse(context, responseJson) {
7
+ const responseHash = createHash('sha256').update(responseJson).digest('hex');
8
+ let parsedJson;
9
+ try {
10
+ parsedJson = JSON.parse(responseJson);
11
+ }
12
+ catch {
13
+ return { status: 'invalid', freshness: 'invalid', responseJson, responseHash, validationErrors: ['Agent response: Invalid JSON.'] };
14
+ }
15
+ const parsed = agentComparisonBundleSchema.safeParse(parsedJson);
16
+ if (!parsed.success) {
17
+ return {
18
+ status: 'invalid',
19
+ freshness: 'invalid',
20
+ responseJson,
21
+ responseHash,
22
+ validationErrors: parsed.error.issues.map((issue) => `${issue.path.join('.')}: ${issue.message}`),
23
+ };
24
+ }
25
+ const activeErrors = validateActiveComparison(context, parsed.data);
26
+ if (activeErrors.length > 0) {
27
+ return { status: 'invalid', freshness: 'stale', responseJson, responseHash, validationErrors: activeErrors };
28
+ }
29
+ return writeValidatedOutputs(context, parsed.data, responseJson, responseHash);
30
+ }
31
+ async function writeValidatedOutputs(context, bundle, responseJson, responseHash) {
32
+ const imageComparisonPath = path.join(context.captureDir, 'image-comparison.json');
33
+ const structureComparisonPath = bundle.structureComparison ? path.join(context.captureDir, 'structure-comparison.json') : undefined;
34
+ const summaryPath = path.join(context.captureDir, 'comparison-summary.json');
35
+ await writeJson(imageComparisonPath, bundle.imageComparison);
36
+ if (bundle.structureComparison && structureComparisonPath) {
37
+ await writeJson(structureComparisonPath, bundle.structureComparison);
38
+ }
39
+ await writeJson(summaryPath, bundle);
40
+ return {
41
+ status: 'validated',
42
+ freshness: 'fresh',
43
+ responseJson,
44
+ responseHash,
45
+ imageComparisonPath,
46
+ structureComparisonPath,
47
+ summaryPath,
48
+ score: {
49
+ imageOverall: bundle.imageComparison.score.overall,
50
+ structureOverall: bundle.structureComparison?.score.overall,
51
+ },
52
+ topFix: bundle.recommendation.topFix,
53
+ scoreHighlights: [
54
+ `Agent image score: ${bundle.imageComparison.score.overall}`,
55
+ ...(bundle.structureComparison ? [`Agent structure score: ${bundle.structureComparison.score.overall}`] : []),
56
+ ],
57
+ };
58
+ }
59
+ function validateActiveComparison(context, bundle) {
60
+ const errors = [];
61
+ if (bundle.profile !== context.profile)
62
+ errors.push(`profile: Expected ${context.profile}.`);
63
+ const expectedSurface = context.profile === 'ideal-to-mockup' ? 'mockup' : 'implementation';
64
+ if (!matchesPath(context.workspaceRoot, context.imageInputs.expectedImagePath, bundle.imageComparison.inputs.expectedImagePath)) {
65
+ errors.push('imageComparison.inputs.expectedImagePath: Does not match the active expected image.');
66
+ }
67
+ if (!matchesPath(context.workspaceRoot, context.imageInputs.actualImagePath, bundle.imageComparison.inputs.actualImagePath)) {
68
+ errors.push('imageComparison.inputs.actualImagePath: Does not match the active actual image.');
69
+ }
70
+ if (bundle.inputFingerprint.expectedImageSha256 !== context.inputFingerprint.expectedImageSha256) {
71
+ errors.push('inputFingerprint.expectedImageSha256: Does not match the active expected image.');
72
+ }
73
+ if (bundle.inputFingerprint.actualImageSha256 !== context.inputFingerprint.actualImageSha256) {
74
+ errors.push('inputFingerprint.actualImageSha256: Does not match the active actual image.');
75
+ }
76
+ validateFixTargets(errors, 'imageComparison', bundle.imageComparison.majorDiffAreas, expectedSurface);
77
+ validateStructure(context, bundle, errors, expectedSurface);
78
+ return errors;
79
+ }
80
+ function validateStructure(context, bundle, errors, expectedSurface) {
81
+ if (!context.structureInputs && bundle.structureComparison)
82
+ errors.push('structureComparison: Not expected for this comparison.');
83
+ if (!context.structureInputs && (bundle.inputFingerprint.expectedStructureSha256 || bundle.inputFingerprint.actualStructureSha256)) {
84
+ errors.push('inputFingerprint: Structure hashes are not expected for this comparison.');
85
+ }
86
+ if (context.structureInputs && !bundle.structureComparison)
87
+ errors.push('structureComparison: Required for this comparison.');
88
+ if (!context.structureInputs || !bundle.structureComparison)
89
+ return;
90
+ validateFixTargets(errors, 'structureComparison', bundle.structureComparison.majorDiffAreas, expectedSurface);
91
+ if (bundle.inputFingerprint.expectedStructureSha256 !== context.inputFingerprint.expectedStructureSha256) {
92
+ errors.push('inputFingerprint.expectedStructureSha256: Does not match the active expected structure.');
93
+ }
94
+ if (bundle.inputFingerprint.actualStructureSha256 !== context.inputFingerprint.actualStructureSha256) {
95
+ errors.push('inputFingerprint.actualStructureSha256: Does not match the active actual structure.');
96
+ }
97
+ if (!matchesPath(context.workspaceRoot, context.structureInputs.expectedStructurePath, bundle.structureComparison.inputs.expectedStructurePath)) {
98
+ errors.push('structureComparison.inputs.expectedStructurePath: Does not match the active expected structure.');
99
+ }
100
+ if (!matchesPath(context.workspaceRoot, context.structureInputs.actualStructurePath, bundle.structureComparison.inputs.actualStructurePath)) {
101
+ errors.push('structureComparison.inputs.actualStructurePath: Does not match the active actual structure.');
102
+ }
103
+ if (bundle.structureComparison.inputs.structureKind !== context.structureInputs.structureKind) {
104
+ errors.push(`structureComparison.inputs.structureKind: Expected ${context.structureInputs.structureKind}.`);
105
+ }
106
+ }
107
+ function matchesPath(root, expectedAbsolute, actual) {
108
+ return actual === expectedAbsolute || actual === path.relative(root, expectedAbsolute);
109
+ }
110
+ async function writeJson(filePath, value) {
111
+ await writeFile(filePath, `${JSON.stringify(value, null, 2)}\n`);
112
+ }
113
+ //# sourceMappingURL=agent-comparison-submit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-comparison-submit.js","sourceRoot":"","sources":["../../src/core/agent-comparison-submit.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,9 @@ export type AgentTaskBriefInput = {
5
5
  target: string;
6
6
  mode: LedgerMode;
7
7
  workspaceRoot: string;
8
- comparisonSummaryPath: string;
8
+ comparisonSummaryPath?: string;
9
+ comparisonSummaryJson?: string;
10
+ comparisonSource: string;
9
11
  sourceRunId: string;
10
12
  desiredExecutor: LedgerActionExecutor;
11
13
  rerunCommand: string;
@@ -24,6 +26,7 @@ export type AgentTaskBrief = {
24
26
  actionStartCommand: string;
25
27
  actionCompleteCommandExample: string;
26
28
  rerunCommand: string;
29
+ comparisonSource: string;
27
30
  };
28
31
  markdown: string;
29
32
  };
@@ -2,7 +2,7 @@ import { readFile } from 'node:fs/promises';
2
2
  import path from 'node:path';
3
3
  import { agentComparisonBundleSchema } from '../schemas/comparison.js';
4
4
  export async function buildAgentTaskBrief(input) {
5
- const raw = await readFile(input.comparisonSummaryPath, 'utf8');
5
+ const raw = input.comparisonSummaryJson ?? await readSummaryFile(input);
6
6
  const bundle = agentComparisonBundleSchema.parse(JSON.parse(raw));
7
7
  const diffs = [
8
8
  ...bundle.imageComparison.majorDiffAreas,
@@ -26,6 +26,7 @@ export async function buildAgentTaskBrief(input) {
26
26
  actionStartCommand,
27
27
  actionCompleteCommandExample,
28
28
  rerunCommand: input.rerunCommand,
29
+ comparisonSource: input.comparisonSource,
29
30
  };
30
31
  return { json, markdown: formatMarkdown(input, bundle, diffs, topFix, editableFiles, selectors, actionStartCommand, actionCompleteCommandExample) };
31
32
  }
@@ -39,7 +40,7 @@ function formatMarkdown(input, bundle, diffs, topFix, editableFiles, selectors,
39
40
  `Mode: \`${input.mode}\``,
40
41
  `Profile: \`${bundle.profile}\``,
41
42
  `Overall score: \`${bundle.imageComparison.score.overall}\``,
42
- `Comparison summary: \`${relative(input.workspaceRoot, input.comparisonSummaryPath)}\``,
43
+ `Comparison source: \`${formatSource(input)}\``,
43
44
  '',
44
45
  '## Recommended Fix',
45
46
  '',
@@ -75,6 +76,11 @@ function formatMarkdown(input, bundle, diffs, topFix, editableFiles, selectors,
75
76
  ];
76
77
  return `${lines.join('\n')}\n`;
77
78
  }
79
+ async function readSummaryFile(input) {
80
+ if (!input.comparisonSummaryPath)
81
+ throw new Error('loop task requires a comparison summary file or stored response JSON.');
82
+ return readFile(input.comparisonSummaryPath, 'utf8');
83
+ }
78
84
  function recommendationLines(bundle) {
79
85
  const lines = [];
80
86
  if (bundle.recommendation.why)
@@ -155,4 +161,7 @@ function relative(root, filePath) {
155
161
  const relativePath = path.relative(root, filePath);
156
162
  return relativePath.startsWith('..') ? filePath : relativePath;
157
163
  }
164
+ function formatSource(input) {
165
+ return input.comparisonSummaryPath ? relative(input.workspaceRoot, input.comparisonSummaryPath) : input.comparisonSource;
166
+ }
158
167
  //# sourceMappingURL=agent-task-brief.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-task-brief.js","sourceRoot":"","sources":["../../src/core/agent-task-brief.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-task-brief.js","sourceRoot":"","sources":["../../src/core/agent-task-brief.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,6 @@ import path from 'node:path';
2
2
  export function artifact(path, kind) {
3
3
  return path ? [{ path, kind, role: 'artifact' }] : [];
4
4
  }
5
- function expectedOutput(path, kind, exists = false) {
6
- return path ? [{ path, kind, role: 'expected-output', exists }] : [];
7
- }
8
5
  export function agentComparisonArtifacts(agentComparison) {
9
6
  if (!agentComparison)
10
7
  return [];
@@ -14,7 +11,6 @@ export function agentComparisonArtifacts(agentComparison) {
14
11
  ...artifact(agentComparison.claudePromptPath, 'agent-comparison-prompt-claude'),
15
12
  ...artifact(agentComparison.schemaPath, 'agent-comparison-schema'),
16
13
  ...artifact(agentComparison.examplePath, 'agent-comparison-example'),
17
- ...expectedOutput(agentComparison.responsePath, 'agent-response-target', agentComparison.status !== 'awaiting-agent'),
18
14
  ...agentComparisonOutputArtifacts(agentComparison),
19
15
  ];
20
16
  }
@@ -26,11 +22,10 @@ function agentComparisonOutputArtifacts(agentComparison) {
26
22
  ...artifact(agentComparison.summaryPath, 'comparison-summary'),
27
23
  ];
28
24
  }
29
- const captureDir = path.dirname(path.dirname(agentComparison.responsePath));
30
25
  return [
31
- { path: path.join(captureDir, 'image-comparison.json'), kind: 'image-comparison', role: 'artifact', exists: false },
32
- { path: path.join(captureDir, 'structure-comparison.json'), kind: 'structure-comparison', role: 'artifact', exists: false },
33
- { path: path.join(captureDir, 'comparison-summary.json'), kind: 'comparison-summary', role: 'artifact', exists: false },
26
+ { path: path.join(agentComparison.captureDir, 'image-comparison.json'), kind: 'image-comparison', role: 'artifact', exists: false },
27
+ { path: path.join(agentComparison.captureDir, 'structure-comparison.json'), kind: 'structure-comparison', role: 'artifact', exists: false },
28
+ { path: path.join(agentComparison.captureDir, 'comparison-summary.json'), kind: 'comparison-summary', role: 'artifact', exists: false },
34
29
  ];
35
30
  }
36
31
  export function referenceImplementationArtifacts(input) {
@@ -1 +1 @@
1
- {"version":3,"file":"comparison-artifacts.js","sourceRoot":"","sources":["../../src/core/comparison-artifacts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"comparison-artifacts.js","sourceRoot":"","sources":["../../src/core/comparison-artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAK7B,MAAM,UAAU,QAAQ,CAAC,IAAwB,EAAE,IAAY;IAC7D,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,eAAsD;IAC7F,IAAI,CAAC,eAAe;QAAE,OAAO,EAAE,CAAC;IAChC,OAAO;QACL,GAAG,QAAQ,CAAC,eAAe,CAAC,UAAU,EAAE,yBAAyB,CAAC;QAClE,GAAG,QAAQ,CAAC,eAAe,CAAC,eAAe,EAAE,+BAA+B,CAAC;QAC7E,GAAG,QAAQ,CAAC,eAAe,CAAC,gBAAgB,EAAE,gCAAgC,CAAC;QAC/E,GAAG,QAAQ,CAAC,eAAe,CAAC,UAAU,EAAE,yBAAyB,CAAC;QAClE,GAAG,QAAQ,CAAC,eAAe,CAAC,WAAW,EAAE,0BAA0B,CAAC;QACpE,GAAG,8BAA8B,CAAC,eAAe,CAAC;KACnD,CAAC;AACJ,CAAC;AAED,SAAS,8BAA8B,CAAC,eAA0C;IAChF,IAAI,eAAe,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QAC3C,OAAO;YACL,GAAG,QAAQ,CAAC,eAAe,CAAC,mBAAmB,EAAE,kBAAkB,CAAC;YACpE,GAAG,QAAQ,CAAC,eAAe,CAAC,uBAAuB,EAAE,sBAAsB,CAAC;YAC5E,GAAG,QAAQ,CAAC,eAAe,CAAC,WAAW,EAAE,oBAAoB,CAAC;SAC/D,CAAC;IACJ,CAAC;IACD,OAAO;QACL,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,uBAAuB,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE;QACnI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,2BAA2B,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE;QAC3I,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,yBAAyB,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE;KACxI,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,KAOhD;IACC,OAAO;QACL,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,sBAAsB,CAAC;QACxD,GAAG,QAAQ,CAAC,GAAG,KAAK,CAAC,aAAa,eAAe,EAAE,uBAAuB,CAAC;QAC3E,GAAG,QAAQ,CAAC,GAAG,KAAK,CAAC,aAAa,eAAe,EAAE,uBAAuB,CAAC;QAC3E,GAAG,QAAQ,CAAC,KAAK,CAAC,kBAAkB,EAAE,2BAA2B,CAAC;QAClE,GAAG,QAAQ,CAAC,GAAG,KAAK,CAAC,kBAAkB,eAAe,EAAE,4BAA4B,CAAC;QACrF,GAAG,QAAQ,CAAC,GAAG,KAAK,CAAC,kBAAkB,eAAe,EAAE,4BAA4B,CAAC;QACrF,GAAG,QAAQ,CAAC,KAAK,CAAC,cAAc,EAAE,cAAc,CAAC;QACjD,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC;QAC7C,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC;QACvC,GAAG,wBAAwB,CAAC,KAAK,CAAC,eAAe,CAAC;KACnD,CAAC;AACJ,CAAC"}
@@ -12,6 +12,7 @@ export type RecordAgentResponseInput = {
12
12
  freshness: AgentResponseFreshness;
13
13
  validationStatus: string;
14
14
  inputFingerprint?: unknown;
15
+ comparisonContext?: unknown;
15
16
  responseJson?: string;
16
17
  score?: unknown;
17
18
  topFix?: string;
@@ -5,9 +5,9 @@ export function insertAgentResponse(db, input, now) {
5
5
  insert into agent_responses (
6
6
  response_id, trajectory_id, iteration_id, run_id, mode, profile, response_path,
7
7
  response_hash, freshness, validation_status, input_fingerprint_json,
8
- response_json, score_json, top_fix, created_at
9
- ) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
10
- `).run(responseId, input.trajectoryId, input.iterationId ?? null, input.runId ?? null, input.mode, input.profile ?? null, input.responsePath, input.responseHash ?? null, input.freshness, input.validationStatus, input.inputFingerprint === undefined ? null : JSON.stringify(input.inputFingerprint), input.responseJson ?? null, input.score === undefined ? null : JSON.stringify(input.score), input.topFix ?? null, now);
8
+ comparison_context_json, response_json, score_json, top_fix, created_at
9
+ ) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
10
+ `).run(responseId, input.trajectoryId, input.iterationId ?? null, input.runId ?? null, input.mode, input.profile ?? null, input.responsePath, input.responseHash ?? null, input.freshness, input.validationStatus, input.inputFingerprint === undefined ? null : JSON.stringify(input.inputFingerprint), input.comparisonContext === undefined ? null : JSON.stringify(input.comparisonContext), input.responseJson ?? null, input.score === undefined ? null : JSON.stringify(input.score), input.topFix ?? null, now);
11
11
  return { responseId };
12
12
  }
13
13
  //# sourceMappingURL=ledger-agent-responses.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ledger-agent-responses.js","sourceRoot":"","sources":["../../src/core/ledger-agent-responses.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAmBjD,MAAM,UAAU,mBAAmB,CAAC,EAAkB,EAAE,KAA+B,EAAE,GAAW;IAClG,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAC1C,EAAE,CAAC,OAAO,CAAC;;;;;;GAMV,CAAC,CAAC,GAAG,CACJ,UAAU,EACV,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,WAAW,IAAI,IAAI,EACzB,KAAK,CAAC,KAAK,IAAI,IAAI,EACnB,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,OAAO,IAAI,IAAI,EACrB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,YAAY,IAAI,IAAI,EAC1B,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,gBAAgB,EACtB,KAAK,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAC,EACpF,KAAK,CAAC,YAAY,IAAI,IAAI,EAC1B,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAC9D,KAAK,CAAC,MAAM,IAAI,IAAI,EACpB,GAAG,CACJ,CAAC;IACF,OAAO,EAAE,UAAU,EAAE,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"ledger-agent-responses.js","sourceRoot":"","sources":["../../src/core/ledger-agent-responses.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAoBjD,MAAM,UAAU,mBAAmB,CAAC,EAAkB,EAAE,KAA+B,EAAE,GAAW;IAClG,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAC1C,EAAE,CAAC,OAAO,CAAC;;;;;;GAMV,CAAC,CAAC,GAAG,CACJ,UAAU,EACV,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,WAAW,IAAI,IAAI,EACzB,KAAK,CAAC,KAAK,IAAI,IAAI,EACnB,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,OAAO,IAAI,IAAI,EACrB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,YAAY,IAAI,IAAI,EAC1B,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,gBAAgB,EACtB,KAAK,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAC,EACpF,KAAK,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,EACtF,KAAK,CAAC,YAAY,IAAI,IAAI,EAC1B,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAC9D,KAAK,CAAC,MAAM,IAAI,IAAI,EACpB,GAAG,CACJ,CAAC;IACF,OAAO,EAAE,UAAU,EAAE,CAAC;AACxB,CAAC"}
@@ -112,6 +112,7 @@ function migrate(db) {
112
112
  freshness text not null,
113
113
  validation_status text not null,
114
114
  input_fingerprint_json text,
115
+ comparison_context_json text,
115
116
  response_json text,
116
117
  score_json text,
117
118
  top_fix text,
@@ -124,6 +125,7 @@ function migrate(db) {
124
125
  `);
125
126
  ensureColumn(db, 'artifacts', 'role', "text not null default 'artifact'");
126
127
  ensureColumn(db, 'artifacts', 'exists_on_disk', 'integer');
128
+ ensureColumn(db, 'agent_responses', 'comparison_context_json', 'text');
127
129
  }
128
130
  function ensureColumn(db, tableName, columnName, definition) {
129
131
  const columns = db.prepare(`pragma table_info(${tableName})`).all();
@@ -1 +1 @@
1
- {"version":3,"file":"ledger-db.js","sourceRoot":"","sources":["../../src/core/ledger-db.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,aAAa,GAAG,CAAC,CAAC;AAQxB,MAAM,UAAU,kBAAkB,CAAC,KAA0B;IAC3D,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC5C,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,OAAO,CAAC,EAAkB;IACjC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCA6GsB,aAAa;;GAE1C,CAAC,CAAC;IACH,YAAY,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,kCAAkC,CAAC,CAAC;IAC1E,YAAY,CAAC,EAAE,EAAE,WAAW,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,YAAY,CAAC,EAAkB,EAAE,SAAiB,EAAE,UAAkB,EAAE,UAAkB;IACjG,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,qBAAqB,SAAS,GAAG,CAAC,CAAC,GAAG,EAAwB,CAAC;IAC1F,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE,CAAC;QAC1D,EAAE,CAAC,IAAI,CAAC,eAAe,SAAS,eAAe,UAAU,IAAI,UAAU,EAAE,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"ledger-db.js","sourceRoot":"","sources":["../../src/core/ledger-db.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,aAAa,GAAG,CAAC,CAAC;AAQxB,MAAM,UAAU,kBAAkB,CAAC,KAA0B;IAC3D,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC5C,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,OAAO,CAAC,EAAkB;IACjC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCA8GsB,aAAa;;GAE1C,CAAC,CAAC;IACH,YAAY,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,kCAAkC,CAAC,CAAC;IAC1E,YAAY,CAAC,EAAE,EAAE,WAAW,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC;IAC3D,YAAY,CAAC,EAAE,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,YAAY,CAAC,EAAkB,EAAE,SAAiB,EAAE,UAAkB,EAAE,UAAkB;IACjG,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,qBAAqB,SAAS,GAAG,CAAC,CAAC,GAAG,EAAwB,CAAC;IAC1F,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE,CAAC;QAC1D,EAAE,CAAC,IAAI,CAAC,eAAe,SAAS,eAAe,UAAU,IAAI,UAAU,EAAE,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC"}
@@ -46,7 +46,7 @@ function formatAgentResponses(responses) {
46
46
  ...(response.responseHash ? [` - hash: ${response.responseHash}`] : []),
47
47
  ...formatScore(response.scoreJson),
48
48
  ...(response.topFix ? [` - top fix: ${response.topFix}`] : []),
49
- ` - response: ${response.responsePath}`,
49
+ ` - response store: ${response.responsePath}`,
50
50
  ]);
51
51
  }
52
52
  function formatScore(raw) {
@@ -1 +1 @@
1
- {"version":3,"file":"ledger-markdown.js","sourceRoot":"","sources":["../../src/core/ledger-markdown.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ledger-markdown.js","sourceRoot":"","sources":["../../src/core/ledger-markdown.ts"],"names":[],"mappings":"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"}
@@ -38,7 +38,8 @@ export function exportTrajectoryRows(db, trajectory) {
38
38
  notes: db.prepare('select note_id as noteId, body from notes where trajectory_id = ? order by rowid').all(trajectoryId),
39
39
  agentResponses: db.prepare(`select response_id as responseId, iteration_id as iterationId, run_id as runId, mode, profile,
40
40
  response_path as responsePath, response_hash as responseHash, freshness, validation_status as validationStatus,
41
- input_fingerprint_json as inputFingerprintJson, response_json as responseJson, score_json as scoreJson,
41
+ input_fingerprint_json as inputFingerprintJson, comparison_context_json as comparisonContextJson,
42
+ response_json as responseJson, score_json as scoreJson,
42
43
  top_fix as topFix, created_at as createdAt from agent_responses where trajectory_id = ? order by rowid`).all(trajectoryId),
43
44
  artifacts,
44
45
  currentArtifacts: getCurrentArtifacts(artifacts),
@@ -1 +1 @@
1
- {"version":3,"file":"ledger-queries.js","sourceRoot":"","sources":["../../src/core/ledger-queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAK7D,MAAM,UAAU,iBAAiB,CAAC,EAAkB,EAAE,KAA6B;IACjF,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,MAAM,GAAc,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI;QAC5B,CAAC,eAAe,EAAE,KAAK,CAAC,YAAY,CAAC;QACrC,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC;QACxB,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC;QACpB,CAAC,cAAc,EAAE,KAAK,CAAC,WAAW,CAAC;QACnC,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;KAC/D,EAAE,CAAC;QACX,IAAI,KAAK,EAAE,CAAC;YACV,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,MAAM,CAAC,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/E,OAAO,EAAE,CAAC,OAAO,CAAC,UAAU,iBAAiB,sBAAsB,KAAK,gCAAgC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAwB,CAAC;AAClJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAAkB,EAAE,YAAoB;IACpE,OAAO,EAAE,CAAC,OAAO,CAAC,UAAU,iBAAiB,4CAA4C,CAAC,CAAC,GAAG,CAAC,YAAY,CAAkC,CAAC;AAChJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAAkB,EAAE,YAAoB;IACpE,OAAO,EAAE,CAAC,OAAO,CAAC,gHAAgH,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACxJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,EAAkB,EAAE,UAA6B;IACpF,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;IAC7C,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC;8FAC+D,CAAC,CAAC,GAAG,CAAC,YAAY,CAAwB,CAAC;IACvI,OAAO;QACL,UAAU;QACV,UAAU,EAAE,aAAa,CAAC,EAAE,EAAE,YAAY,CAAC;QAC3C,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC;;gEAEyC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;QAC/E,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,uHAAuH,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;QAC3J,mBAAmB,EAAE,EAAE,CAAC,OAAO,CAAC,wIAAwI,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;QAC3L,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,kFAAkF,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;QACvH,cAAc,EAAE,EAAE,CAAC,OAAO,CAAC;;;6GAG8E,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;QAC5H,SAAS;QACT,gBAAgB,EAAE,mBAAmB,CAAC,SAAS,CAAC;KACjD,CAAC;AACJ,CAAC;AAED,MAAM,iBAAiB,GAAG;;;;;;;;;CASzB,CAAC"}
1
+ {"version":3,"file":"ledger-queries.js","sourceRoot":"","sources":["../../src/core/ledger-queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAK7D,MAAM,UAAU,iBAAiB,CAAC,EAAkB,EAAE,KAA6B;IACjF,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,MAAM,GAAc,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI;QAC5B,CAAC,eAAe,EAAE,KAAK,CAAC,YAAY,CAAC;QACrC,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC;QACxB,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC;QACpB,CAAC,cAAc,EAAE,KAAK,CAAC,WAAW,CAAC;QACnC,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;KAC/D,EAAE,CAAC;QACX,IAAI,KAAK,EAAE,CAAC;YACV,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,MAAM,CAAC,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/E,OAAO,EAAE,CAAC,OAAO,CAAC,UAAU,iBAAiB,sBAAsB,KAAK,gCAAgC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAwB,CAAC;AAClJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAAkB,EAAE,YAAoB;IACpE,OAAO,EAAE,CAAC,OAAO,CAAC,UAAU,iBAAiB,4CAA4C,CAAC,CAAC,GAAG,CAAC,YAAY,CAAkC,CAAC;AAChJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAAkB,EAAE,YAAoB;IACpE,OAAO,EAAE,CAAC,OAAO,CAAC,gHAAgH,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACxJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,EAAkB,EAAE,UAA6B;IACpF,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;IAC7C,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC;8FAC+D,CAAC,CAAC,GAAG,CAAC,YAAY,CAAwB,CAAC;IACvI,OAAO;QACL,UAAU;QACV,UAAU,EAAE,aAAa,CAAC,EAAE,EAAE,YAAY,CAAC;QAC3C,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC;;gEAEyC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;QAC/E,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,uHAAuH,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;QAC3J,mBAAmB,EAAE,EAAE,CAAC,OAAO,CAAC,wIAAwI,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;QAC3L,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,kFAAkF,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;QACvH,cAAc,EAAE,EAAE,CAAC,OAAO,CAAC;;;;6GAI8E,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;QAC5H,SAAS;QACT,gBAAgB,EAAE,mBAAmB,CAAC,SAAS,CAAC;KACjD,CAAC;AACJ,CAAC;AAED,MAAM,iBAAiB,GAAG;;;;;;;;;CASzB,CAAC"}
@@ -127,7 +127,7 @@ function formatAgentSpecStatus(agentSpec) {
127
127
  ## Visual Spec Status
128
128
 
129
129
  - Agent-required spec pack generated.
130
- - Next step: have an agent inspect the ideal image and reference artifacts, then write \`captures/image-reference/spec/agent-response.json\`.
130
+ - Next step: have an agent inspect the ideal image and reference artifacts, then write structured JSON to the response path named by the spec prompt.
131
131
  - Rerun \`limner compare image-reference --target <target> --spec\` after the response file exists.`;
132
132
  }
133
133
  if (agentSpec.status === 'invalid') {
@@ -12,13 +12,13 @@ Use `limner loop` when a screen will need Ralph Loop-style iteration. Limner sto
12
12
 
13
13
  1. Start a trajectory with `limner loop start --mode <mode> --target <name> --name <human-name> --max-iterations <count>`.
14
14
  2. Run `limner loop compare --trajectory <trajectory-id>`.
15
- 3. Read the generated agent comparison prompt and response target.
16
- 4. Write or validate the agent response.
17
- 5. Use `limner loop status --trajectory <trajectory-id>` to inspect current state.
15
+ 3. Read the generated agent comparison prompt.
16
+ 4. Submit the agent response with `limner loop response submit --trajectory <trajectory-id> --from-run <run-id> --file ./response.json`.
17
+ 5. Use `limner loop status --trajectory <trajectory-id>` to inspect current state, or add `--format json` for agent-ingestible output.
18
18
  6. Use `limner loop next --trajectory <trajectory-id>` to begin the next scoped fix.
19
19
  7. Use `limner loop close --trajectory <trajectory-id>` when the trajectory is done.
20
20
 
21
- Every meaningful loop interaction writes a ledger event. Agent responses are stored in the local SQLite DB with the full JSON body, hash, validation status, and freshness, so cached reuse is visible in exports. Use `--feedback "<short note>"` on loop status for a 255-character `agentFeedback` note about improving the current process.
21
+ Every meaningful loop interaction writes a ledger event. Agent responses are submitted to the local SQLite DB with the full JSON body, hash, validation status, and freshness. Use `--feedback "<short note>"` on loop status for a 255-character `agentFeedback` note about improving the current process.
22
22
 
23
23
  Use `limner ledger export <trajectory-id> --format markdown` when an agent needs a compact case file for a trajectory.
24
24
 
@@ -27,7 +27,7 @@ Use `limner ledger export <trajectory-id> --format markdown` when an agent needs
27
27
  After validation, the expected edit loop is:
28
28
 
29
29
  ```text
30
- loop compare -> loop task --executor subagent -> loop action start -> edit -> loop action complete -> loop compare
30
+ loop compare -> loop response submit -> loop task --executor subagent -> loop action start -> edit -> loop action complete -> loop compare
31
31
  ```
32
32
 
33
33
  Prefer `limner loop task --trajectory <trajectory-id> --executor subagent` so the task brief records subagent intent. Before editing, record the source comparison run with `limner loop action start --trajectory <trajectory-id> --from-run <run-id> --kind polish --executor subagent --summary "<short edit intent>"`. After editing, record `limner loop action complete --trajectory <trajectory-id> --action <action-id> --executor subagent --summary "<what changed>" --files "<paths>"`, then rerun `limner loop compare --trajectory <trajectory-id>`.
@@ -36,13 +36,13 @@ Use `limner loop action skip --trajectory <trajectory-id> --from-run <run-id> --
36
36
 
37
37
  ## Agent Handoff After Validation
38
38
 
39
- After an agent writes `agent-response.json` and `limner loop compare` reports `Agent comparison status: validated`, use:
39
+ After `limner loop response submit` reports `Status: validated`, use:
40
40
 
41
41
  ```bash
42
42
  limner loop task --trajectory <trajectory-id> --executor subagent
43
43
  ```
44
44
 
45
- The task brief is generated from the latest validated `comparison-summary.json`. It includes the trajectory, target, mode, overall score, top fix, likely editable files, selectors, prioritized diffs, next-iteration steps, and the compare command to rerun after edits.
45
+ The task brief is generated from the latest validated response stored in SQLite, with `comparison-summary.json` used only as a backward-compatible artifact source. It includes the trajectory, target, mode, overall score, top fix, likely editable files, selectors, prioritized diffs, next-iteration steps, the compare command to rerun after edits, and a `comparisonSource` handle.
46
46
 
47
47
  For machine-readable output:
48
48
 
@@ -50,7 +50,7 @@ For machine-readable output:
50
50
  limner loop task --trajectory <trajectory-id> --executor subagent --format json
51
51
  ```
52
52
 
53
- Ledger exports remain append-only for audit history, but the top artifact sections show de-duped current artifacts so agents can quickly find the latest written files and expected outputs.
53
+ Ledger exports remain append-only for audit history, but the top artifact sections show de-duped current artifacts so agents can quickly find the latest written files and expected outputs. Prefer SQLite-backed `loop task --format json` over reading mutable capture artifacts when handing work to another agent.
54
54
 
55
55
  ## Phase 1: Image To Reference
56
56
 
@@ -60,21 +60,19 @@ Ledger exports remain append-only for audit history, but the top artifact sectio
60
60
  4. Rebuild `reference/index.html` and `reference/styles.css` as a faithful HTML facsimile.
61
61
  5. Run `limner compare image-reference --target <name>`.
62
62
  6. Read `captures/image-reference/agent-comparison/agent-prompt.codex.md`.
63
- 7. Write `captures/image-reference/agent-comparison/agent-response.json`.
64
- 8. Rerun the same command to validate `image-comparison.json` and `comparison-summary.json`.
65
- 9. Optional: run `limner compare image-reference --target <name> --spec` to generate a visual spec prompt pack.
66
- 10. Edit `contract/visual-spec-instructions.md` for target-specific prompt guidance, or pass `--spec-instructions <path>` for a shared prompt policy.
67
- 11. Iterate on one scoped mockup fix at a time until the reference is approved.
63
+ 7. Submit the response with `limner loop response submit --trajectory <trajectory-id> --from-run <run-id> --file ./response.json`.
64
+ 8. Use the validated `image-comparison.json` and `comparison-summary.json`.
65
+ 9. Iterate on one scoped mockup fix at a time until the reference is approved.
68
66
 
69
67
  ## Phase 2: Reference To Implementation
70
68
 
71
69
  1. Add implementation selectors to `contract/regions.json` using `appSelector`.
72
70
  2. Run `limner compare reference-implementation --target <name> --url <implementation-url>`.
73
71
  3. Read `captures/reference-implementation/agent-comparison/agent-prompt.codex.md`.
74
- 4. Write `captures/reference-implementation/agent-comparison/agent-response.json`.
75
- 5. Rerun the same command to validate `image-comparison.json`, `structure-comparison.json`, and `comparison-summary.json`.
72
+ 4. Submit the response with `limner loop response submit --trajectory <trajectory-id> --from-run <run-id> --file ./response.json`.
73
+ 5. Use the validated `image-comparison.json`, `structure-comparison.json`, and `comparison-summary.json`.
76
74
  6. Fix the implementation and rerun until it matches the approved reference.
77
75
 
78
76
  ## Agent Rule
79
77
 
80
- Do not treat side-by-side generation as success. It is evidence. The agent must write the structured comparison response and use its next-iteration guidance for one scoped fix.
78
+ Do not treat side-by-side generation as success. It is evidence. The agent must submit the structured comparison response and use its next-iteration guidance for one scoped fix.
@@ -0,0 +1,23 @@
1
+ # Archived Visual Spec Workflow
2
+
3
+ Limner previously exposed an optional `compare image-reference --spec` workflow for source image to mockup work.
4
+
5
+ The workflow asked an external agent to produce a structured visual-spec bundle:
6
+
7
+ - `idealSpec`: design intent inferred from the source image
8
+ - `referenceSpec`: design intent expressed by the rendered HTML mockup
9
+ - `diff`: semantic mismatches and next fixes between those two specs
10
+
11
+ When validated, Limner split the bundle into:
12
+
13
+ - `captures/image-reference/ideal-visual-spec.json`
14
+ - `captures/image-reference/reference-visual-spec.json`
15
+ - `captures/image-reference/visual-spec-diff.json`
16
+
17
+ This lane is archived because the DB-native agent comparison loop now covers the active iteration need more directly:
18
+
19
+ ```text
20
+ loop compare -> loop response submit -> loop task -> loop action -> loop compare
21
+ ```
22
+
23
+ The archived visual-spec code may still be useful as a historical reference for structured design-intent extraction, but active agent workflows should use DB-native comparison responses in the local SQLite ledger.
@@ -0,0 +1,91 @@
1
+ # DB-Native Agent Responses
2
+
3
+ ## Objective
4
+
5
+ Make Limner treat SQLite as the canonical store and submission path for agent comparison responses, so agents no longer rely on a magic `agent-response.json` file as package state.
6
+
7
+ ## Original Request
8
+
9
+ Plan this out using GoalBuddy prep and do the work so Limner stores agent comparison responses in SQLite instead of using `agent-response.json`.
10
+
11
+ ## Intake Summary
12
+
13
+ - Input shape: `existing_plan`
14
+ - Audience: Limner users and agents dogfooding visual comparison loops across multiple projects
15
+ - Authority: `approved`
16
+ - Proof type: `test`
17
+ - Completion proof: `npm run check` passes, docs/skills describe the DB-native workflow, and a fresh Seatify loop can submit/read an agent response through SQLite without depending on target-scoped `agent-response.json`.
18
+ - Goal oracle: A local Limner workflow where `loop compare` produces a response submission path, `loop response submit` stores the full JSON in SQLite, ledger/export surfaces that row, and no docs/skills instruct agents to write canonical `agent-response.json`.
19
+ - Likely misfire: Only copying response JSON into SQLite after reading the old file, while leaving the file as the real source of truth.
20
+ - Blind spots considered: migration from existing local ledgers, direct compare command compatibility, stale response detection without file mtimes, generated artifact naming, agent discoverability, and preserving model-agnostic CLI behavior.
21
+ - Existing plan facts: Keep responses local only; SQLite should store the full raw JSON; `agent_responses` belongs beside ledger events rather than inside the ledger event log; agent-readable skills/docs must explain the CLI commands; previous `agent-response.json` freshness semantics showed cached reuse and should become explicit DB submission state instead.
22
+
23
+ ## Goal Oracle
24
+
25
+ The oracle for this goal is:
26
+
27
+ `npm run check` passes and a fresh loop can validate a DB-submitted agent comparison response without treating captures/**/agent-response.json as canonical state.`
28
+
29
+ The PM must keep comparing task receipts to this oracle. Planning, discovery, a passing tiny slice, or a clean-looking board is not enough. The goal finishes only when a final Judge/PM audit maps receipts and verification back to this oracle and records `full_outcome_complete: true`.
30
+
31
+ ## Goal Kind
32
+
33
+ `existing_plan`
34
+
35
+ ## Current Tranche
36
+
37
+ Complete the DB-native response submission and storage tranche: validate the current code path, implement the CLI/storage/prompt/doc changes, verify with tests and `npm run check`, then prepare the branch for PR/release follow-up if green.
38
+
39
+ ## Non-Negotiable Constraints
40
+
41
+ - Keep Limner model-agnostic: accept JSON via CLI file or stdin rather than integrating a provider.
42
+ - Keep logs and ledgers local; do not add remote telemetry.
43
+ - Do not commit generated `.limner/`, `dist/`, `node_modules/`, or smoke artifacts.
44
+ - Preserve supported comparison modes: `image-mockup`, `mockup-implementation`, and `image-implementation`.
45
+ - Store the full agent response JSON in SQLite.
46
+ - Do not leave `agent-response.json` as the canonical handoff/state file in docs, skills, or loop behavior.
47
+ - Run `npm run check` before claiming implementation completion or opening a PR.
48
+
49
+ ## Stop Rule
50
+
51
+ Stop only when a final audit proves the full original outcome is complete.
52
+
53
+ Do not stop after planning, discovery, or Judge selection if a safe Worker task can be activated.
54
+
55
+ Do not stop after a single verified Worker package when the broader owner outcome still has safe local follow-up work. Advance the board to the next highest-leverage safe Worker package and continue unless a phase, risk, rejected-verification, ambiguity, or final-completion review is due.
56
+
57
+ ## Slice Sizing
58
+
59
+ Safe means bounded, explicit, verified, and reversible. It does not mean tiny.
60
+
61
+ A good task is the largest safe useful slice.
62
+
63
+ The Worker should complete the full coherent DB-native response submission slice, including tests and documentation, unless code inspection finds that the slice must be split.
64
+
65
+ ## Canonical Board
66
+
67
+ Machine truth lives at:
68
+
69
+ `docs/goals/db-native-agent-responses/state.yaml`
70
+
71
+ If this charter and `state.yaml` disagree, `state.yaml` wins for task status, active task, receipts, verification freshness, and completion truth.
72
+
73
+ ## Run Command
74
+
75
+ ```text
76
+ /goal Follow docs/goals/db-native-agent-responses/goal.md.
77
+ ```
78
+
79
+ ## PM Loop
80
+
81
+ On every `/goal` continuation:
82
+
83
+ 1. Read this charter.
84
+ 2. Read `state.yaml`.
85
+ 3. Run the bundled GoalBuddy update checker when available and mention a newer version without blocking.
86
+ 4. Re-check the likely misfire: do not preserve `agent-response.json` as the canonical response channel.
87
+ 5. Work only on the active board task.
88
+ 6. Assign Scout, Judge, Worker, or PM according to the task.
89
+ 7. Write a compact task receipt.
90
+ 8. Update the board.
91
+ 9. Continue to the next safe local work package unless final audit proves the goal complete.