@deniscodp/skills 0.0.0-stage → 1.0.0
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/LICENSE +21 -0
- package/README.md +89 -2
- package/bin/deniscodp-skills.mjs +4 -0
- package/package.json +23 -4
- package/scripts/catalog.mjs +68 -0
- package/scripts/cli.mjs +264 -0
- package/scripts/install.mjs +184 -0
- package/scripts/recommended.mjs +102 -0
- package/skills/denisco-handoff-implementation/SKILL.md +254 -0
- package/skills/denisco-handoff-implementation/references/blocker-checklist.md +71 -0
- package/skills/denisco-handoff-implementation/references/delegated-implementation.md +168 -0
- package/skills/denisco-handoff-implementation/references/ownership.md +105 -0
- package/skills/denisco-handoff-implementation/references/session-plan.md +195 -0
- package/skills/denisco-handoff-implementation/scripts/ownership.mjs +153 -0
- package/skills/denisco-implementation-coordinator/SKILL.md +237 -0
- package/skills/denisco-implementation-coordinator/agents/openai.yaml +2 -0
- package/skills/denisco-implementation-coordinator/references/documents.md +175 -0
- package/skills/denisco-implementation-coordinator/references/runtimes.md +105 -0
- package/skills/denisco-interactive-spec-definition/SKILL.md +126 -0
- package/skills/denisco-interactive-spec-definition/references/blocker-checklist.md +71 -0
- package/skills/denisco-interactive-spec-definition/references/handoff-template.md +124 -0
- package/skills/denisco-project-context/SKILL.md +60 -0
- package/skills/denisco-project-context/references/project-documents.md +70 -0
- package/skills/denisco-visual-check/SKILL.md +136 -0
- package/skills/denisco-visual-check/references/judge-prompt.md +55 -0
- package/skills/denisco-visual-check/references/project-config.md +118 -0
- package/skills/denisco-workflow-benchmark/SKILL.md +113 -0
- package/skills/denisco-workflow-benchmark/agents/openai.yaml +2 -0
- package/skills/denisco-workflow-benchmark/references/measurement.md +166 -0
- package/skills/denisco-workflow-benchmark/references/workflow-contract.md +371 -0
- package/skills/denisco-workflow-benchmark/scripts/bench.mjs +156 -0
- package/skills/denisco-workflow-benchmark/scripts/cases.mjs +46 -0
- package/skills/denisco-workflow-benchmark/scripts/configuration.mjs +71 -0
- package/skills/denisco-workflow-benchmark/scripts/discover.mjs +88 -0
- package/skills/denisco-workflow-benchmark/scripts/eval-worker.mjs +58 -0
- package/skills/denisco-workflow-benchmark/scripts/io.mjs +82 -0
- package/skills/denisco-workflow-benchmark/scripts/prepare.mjs +69 -0
- package/skills/denisco-workflow-benchmark/scripts/runs.mjs +235 -0
- package/skills/denisco-workflow-benchmark/scripts/state-prompt.mjs +96 -0
- package/skills/denisco-workflow-benchmark/scripts/tracking.mjs +91 -0
- package/skills/denisco-workflow-benchmark/scripts/usage.mjs +175 -0
- package/skills/denisco-workflow-benchmark/scripts/workflow.mjs +334 -0
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: denisco-interactive-spec-definition
|
|
3
|
+
description: "Investigate a bug or define a feature with the user and produce a decided, testable handoff with its blockers resolved. Use before implementation when requirements or diagnosis need work, or when a new goal appears during a task; not for executing an approved plan or generic repository onboarding."
|
|
4
|
+
metadata:
|
|
5
|
+
version: "6.0.0"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Interactive spec definition
|
|
9
|
+
|
|
10
|
+
Turn a request into an executable handoff. Preserve the user's goal; choose depth according
|
|
11
|
+
to uncertainty and impact. A small bug can need a short investigation and one implementation
|
|
12
|
+
block. Do not impose a UX interview on backend work.
|
|
13
|
+
|
|
14
|
+
## Deliverable and phase boundary
|
|
15
|
+
|
|
16
|
+
This skill delivers HANDOFF, its operational sidecar and a saved, checked planning prompt. It does
|
|
17
|
+
not create PLAN/STATE or edit application code. A new goal that appeared during another task gets
|
|
18
|
+
its own task directory and handoff, linked to the originating task.
|
|
19
|
+
|
|
20
|
+
Once the deliverables are saved, ask: "Specification ready. Start planning now?" The user's yes to
|
|
21
|
+
that question starts denisco-handoff-implementation in planning-only mode in this conversation; for a
|
|
22
|
+
multi-block plan that phase continues into coordination preparation and its launch question. Any other
|
|
23
|
+
answer ends the phase; the saved planning prompt starts planning later. With the question, mention
|
|
24
|
+
that the saved prompt can also start planning in a fresh conversation with less context.
|
|
25
|
+
|
|
26
|
+
Approval applies to the artifact requested. A generic "approved" or native Plan Mode approval
|
|
27
|
+
during specification permits completing that specification when writing is allowed; it does not
|
|
28
|
+
start planning or application-code changes. Automatic mode has the same phase boundary.
|
|
29
|
+
In Plan Mode propose the handoff, sidecar and prompt with writes pending. On return to writable
|
|
30
|
+
mode materialize these deliverables, then ask the planning question, regardless of generic "start
|
|
31
|
+
coding" tool text. The agent never launches its own saved prompt.
|
|
32
|
+
|
|
33
|
+
Keep the phase that was active before a native mode transition. A bare transition message such as
|
|
34
|
+
`Implement the plan.`, `Start coding` or `Proceed` is generic UI control text: it is not the user's
|
|
35
|
+
answer to the planning question, even when it arrives right after it, and it names no saved prompt,
|
|
36
|
+
handoff path, phase or block. Do not load denisco-handoff-implementation or record planning or
|
|
37
|
+
implementation authorization from that message. Materialize the pending specification deliverables
|
|
38
|
+
and ask the planning question. Planning starts only on the user's yes to that question, the user's
|
|
39
|
+
submission of the saved planning prompt, or an equivalently scoped request naming the handoff and
|
|
40
|
+
planning phase.
|
|
41
|
+
|
|
42
|
+
## Ground the request
|
|
43
|
+
|
|
44
|
+
Read project instructions and relevant project map/operating guide sections if available.
|
|
45
|
+
Reuse documentation; inspect actual affected code before recommending changes.
|
|
46
|
+
If unfamiliar, use `denisco-project-context` when available or perform targeted exploration yourself.
|
|
47
|
+
Missing onboarding must not block a well-understood isolated task.
|
|
48
|
+
|
|
49
|
+
Clarify product intent where evidence cannot settle it. Read important files yourself;
|
|
50
|
+
parallel agents are optional when independent exploration helps and is authorized.
|
|
51
|
+
Anchor current behavior to paths and symbols, with line numbers as navigation aids.
|
|
52
|
+
For absence claims record search pattern, scope and date; check complete, scoped results.
|
|
53
|
+
Recheck relevant evidence at handoff rather than inheriting old assertions.
|
|
54
|
+
|
|
55
|
+
## Choose the investigation
|
|
56
|
+
|
|
57
|
+
**Bug:** establish expected versus observed behavior, reproduction inputs and affected users.
|
|
58
|
+
Trace the cause, distinguishing verified causes from hypotheses. Reproduce with a focused test
|
|
59
|
+
where feasible. If reproduction is unavailable, retain the limitation and identify the evidence
|
|
60
|
+
needed; do not present an inferred cause as proven. Check related consumers for the same defect.
|
|
61
|
+
|
|
62
|
+
**Feature:** decide the business outcome, behavior, permissions, boundary cases and integrations.
|
|
63
|
+
Find reusable capabilities and conventions before designing. Record rejected alternatives when
|
|
64
|
+
they explain meaningful choices. For UX questions consider effort, discoverability, keyboard/touch
|
|
65
|
+
access and error risk; count clicks when useful.
|
|
66
|
+
|
|
67
|
+
Separate product choices from implementation discretion. Engineers may choose ordinary technical
|
|
68
|
+
details that preserve the contract. Ask about missing product decisions or material scope changes,
|
|
69
|
+
not every helper name or internal decomposition.
|
|
70
|
+
|
|
71
|
+
## Hunt blockers
|
|
72
|
+
|
|
73
|
+
Before handing over, run the blocker hunt in [the blocker checklist](references/blocker-checklist.md):
|
|
74
|
+
probe first, then ask in rounds until every item is decided, a user action or not in this task.
|
|
75
|
+
Record the result in the handoff: the blocker table, the permission list, the verifier of each
|
|
76
|
+
criterion, **Done when** and **Not in this task**. When a goal depends on a third-party wait, such
|
|
77
|
+
as an external review, end the task before the wait; the wait and the work after it become a
|
|
78
|
+
follow-up task.
|
|
79
|
+
|
|
80
|
+
## Visual decisions and acceptance
|
|
81
|
+
|
|
82
|
+
Show a rendering when a decision depends on perceived size, color, spacing or hierarchy.
|
|
83
|
+
Use `denisco-visual-check` preview if available; label reproductions and uncertainty. Fixed wording,
|
|
84
|
+
existing component reuse or functional UI changes do not automatically require visual candidates.
|
|
85
|
+
If the user already chose the appearance, do not reopen the choice.
|
|
86
|
+
|
|
87
|
+
Select acceptance evidence by requirement: technical tests, interaction checks, browser measurements
|
|
88
|
+
or perceptual comparison. Not every point needs every category. Same appearance as an existing
|
|
89
|
+
element is a measurement against that element; keep perceptual criteria for comparisons that
|
|
90
|
+
measurement cannot settle. Reuse the operating guide for
|
|
91
|
+
commands, login and fixtures. A required check the agent cannot run gets its verifier from the
|
|
92
|
+
blocker hunt: the user, or a waiver with the reason and the user's yes. Never drop a criterion
|
|
93
|
+
because tooling is missing.
|
|
94
|
+
|
|
95
|
+
## Deliver incrementally
|
|
96
|
+
|
|
97
|
+
Read [the handoff template](references/handoff-template.md) before drafting. In writable mode,
|
|
98
|
+
record decisions as they converge. In Plan Mode keep drafts in chat and identify documents to
|
|
99
|
+
materialize later; do not write files against the active mode's restrictions.
|
|
100
|
+
|
|
101
|
+
Each point has a stable ID, decided behavior, dependencies and executable acceptance criteria,
|
|
102
|
+
each with its verifier. Excluded points remain with reasons. The handoff is ready only when the
|
|
103
|
+
blocker hunt left no open item. Review relevant code anchors and verification prerequisites before
|
|
104
|
+
handing over.
|
|
105
|
+
Deliver a copyable planning prompt saved in HANDOFF.md and link its section. Save and reread the
|
|
106
|
+
prompt directly from the template. When measurement was explicitly enabled and denisco-workflow-benchmark
|
|
107
|
+
is already available, its `planning-prompt --handoff <file> --save` and `--check` commands may be
|
|
108
|
+
used instead. In Plan Mode deliver the prompt in chat with writes pending.
|
|
109
|
+
Do not require the user or another AI to assemble the planning prompt. PLAN/STATE and the first
|
|
110
|
+
execution prompt belong to planning.
|
|
111
|
+
|
|
112
|
+
Measurement is disabled by default. Enable it only when the current user request or applicable
|
|
113
|
+
project instructions explicitly request workflow measurement for this task. Skill availability,
|
|
114
|
+
acceptance criteria, an old register or a prior task's preference are not activation. When disabled,
|
|
115
|
+
do not load, install or use denisco-workflow-benchmark; do not create, search for or bind a register and do
|
|
116
|
+
not track a session. Persist the disabled state so later planning and implementation sessions cannot
|
|
117
|
+
infer a different default. When explicitly enabled, the agent owns setup and registration; never
|
|
118
|
+
ask the user for session IDs, log paths or nonces. Keep unrecoverable prior work explicitly
|
|
119
|
+
unmeasured and never estimate tokens.
|
|
120
|
+
|
|
121
|
+
Persist measurement activation in `<handoff-path>.workflow.json`, not only in chat or external
|
|
122
|
+
PROMPTS.md. Follow the handoff template for this operational link. If a run exists, link it using
|
|
123
|
+
denisco-workflow-benchmark `bind`; do not initialize a replacement. Include the context path and
|
|
124
|
+
enabled/disabled/unknown measurement state in the planning prompt. Use disabled when no explicit
|
|
125
|
+
activation exists. Unknown is reserved for a legacy or interrupted explicit activation whose state
|
|
126
|
+
cannot yet be reconciled; it never means "enable by default". Record the reason and next action.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Blocker checklist
|
|
2
|
+
|
|
3
|
+
A **blocker** is anything the agent cannot settle alone that would stop or reshape the work: a fact
|
|
4
|
+
only the user knows, an action only the user or a third party can take, a permission, or a check
|
|
5
|
+
the agent cannot run. The **blocker hunt** finds them before the work they affect starts.
|
|
6
|
+
|
|
7
|
+
## Probe first
|
|
8
|
+
|
|
9
|
+
Settle by looking whatever looking can settle, then ask about the rest:
|
|
10
|
+
|
|
11
|
+
- Read the official requirements of every external platform the task touches (submission, review,
|
|
12
|
+
publication, authentication, hosting limits). Record the links and each requirement found.
|
|
13
|
+
- Run the project's verification cycle once and record the failures that already exist.
|
|
14
|
+
- Validate a draft configuration or manifest when a validator exists.
|
|
15
|
+
- Check what you can operate here: portals and dashboards, an authenticated browser, GUI clients,
|
|
16
|
+
media files, push and deploy. Every step you cannot operate is a step for the user.
|
|
17
|
+
|
|
18
|
+
## Categories
|
|
19
|
+
|
|
20
|
+
Name the concrete value for each category, or ask for it. Skip a category only when the task
|
|
21
|
+
cannot touch it.
|
|
22
|
+
|
|
23
|
+
| Category | Settle |
|
|
24
|
+
|---|---|
|
|
25
|
+
| Accounts and credentials | which account, who holds it, where the secret lives (never its value) |
|
|
26
|
+
| Console and portal access | which console, organization and project; who can sign in |
|
|
27
|
+
| Who operates each step | for every portal, GUI or physical step: the agent or the user |
|
|
28
|
+
| Permissions | the permission list below |
|
|
29
|
+
| Environments | staging or production, which domain, which data |
|
|
30
|
+
| Size facts | facts that change how much to build: how many users, existing data, whether data may be lost |
|
|
31
|
+
| Product decisions | choices only the user can make |
|
|
32
|
+
| Third-party waits | reviews, approvals, propagation; expected duration; what the plan does meanwhile |
|
|
33
|
+
| Paid services | which plan, who pays, limits that stop the work |
|
|
34
|
+
| Legal and content | texts, policies and media the user must supply or approve |
|
|
35
|
+
| Checks the agent cannot run | who verifies each one, below |
|
|
36
|
+
|
|
37
|
+
## Close every item
|
|
38
|
+
|
|
39
|
+
Each item ends in exactly one state:
|
|
40
|
+
|
|
41
|
+
- **decided:** the answer is recorded where it applies;
|
|
42
|
+
- **your action:** the user agreed to do it; the item names the point it unblocks and how the agent
|
|
43
|
+
will check it, and it appears in **Your actions**;
|
|
44
|
+
- **not in this task:** moved out of the task with the user's yes.
|
|
45
|
+
|
|
46
|
+
An item never asked, or recorded as unknown, is still open, and the work that depends on it is not
|
|
47
|
+
ready.
|
|
48
|
+
|
|
49
|
+
## Permission list
|
|
50
|
+
|
|
51
|
+
Ask once for the actions the agent may take during this task without asking again. Each entry
|
|
52
|
+
names the action, its target and its limit, for example: push to `auth/*` branches; deploy
|
|
53
|
+
`mcp-service`; write to the staging database.
|
|
54
|
+
|
|
55
|
+
These actions always need a fresh yes, even when listed: submitting or publishing to a store or
|
|
56
|
+
portal; DNS and certificates; deleting or migrating production data; spending money; messages to
|
|
57
|
+
real people. Ask before any action outside the list.
|
|
58
|
+
|
|
59
|
+
## Who verifies
|
|
60
|
+
|
|
61
|
+
Every acceptance criterion names its verifier:
|
|
62
|
+
|
|
63
|
+
- **agent:** the agent runs the check;
|
|
64
|
+
- **user:** the user performs it and reports; the report is the evidence;
|
|
65
|
+
- **waived:** nobody runs it; record the reason and the user's yes.
|
|
66
|
+
|
|
67
|
+
## Asking
|
|
68
|
+
|
|
69
|
+
Ask in rounds. Number each question and give your recommended answer, so that "yes" accepts it.
|
|
70
|
+
Put every question that is ready into the same round; a question that depends on another answer
|
|
71
|
+
waits for the next round.
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# Handoff template
|
|
2
|
+
|
|
3
|
+
Write in the project's documentation language. Use its established task directory; otherwise
|
|
4
|
+
use `docs/agent-workflow/tasks/<task-id>/`. Measurement records are separate from the product
|
|
5
|
+
contract. Never copy credentials or duplicate the operating guide.
|
|
6
|
+
|
|
7
|
+
## HANDOFF.md
|
|
8
|
+
|
|
9
|
+
First line: **Use `denisco-handoff-implementation` in planning-only mode to produce PLAN, STATE and the
|
|
10
|
+
first execution prompt, then ask before implementing; use `denisco-visual-check` only for the selected
|
|
11
|
+
visual criteria.**
|
|
12
|
+
|
|
13
|
+
- Task ID, title, kind (bug/feature), goal and scope; the originating task when a new goal split off.
|
|
14
|
+
- **Done when:** one observable outcome for the whole task.
|
|
15
|
+
- **Not in this task:** each item moved out, with its reason and the user's yes. A third-party wait
|
|
16
|
+
and the work after it form a follow-up task.
|
|
17
|
+
- Specification request/approval evidence, date and scope. Completion means delivering this
|
|
18
|
+
handoff and planning prompt; planning starts only on the user's yes to the planning question or
|
|
19
|
+
a submitted planning prompt. Preserve any explicit later requests; never infer them from
|
|
20
|
+
specification approval or a native mode transition. In particular, do not record bare native
|
|
21
|
+
control text such as `Implement the plan.` as planning or implementation authorization.
|
|
22
|
+
- **Blockers:** the blocker hunt's result as a table: item, state (decided, your action, not in this
|
|
23
|
+
task), the point it unblocks and how the agent checks it. Platform requirements found by probing
|
|
24
|
+
link their source; pre-existing verification failures are listed with their output location.
|
|
25
|
+
- **Permission list:** action, target and limit for each entry. The always-ask actions in the blocker
|
|
26
|
+
checklist stay outside it.
|
|
27
|
+
- Project map and operating-guide links; code snapshot (commit and relevant uncommitted changes).
|
|
28
|
+
- What already works and must remain intact; superseded/complemented documents.
|
|
29
|
+
- Bug: expected/observed behavior, reproduction, cause evidence and unresolved hypotheses.
|
|
30
|
+
- Feature: target business outcome and relevant users/roles.
|
|
31
|
+
|
|
32
|
+
For each stable point ID (P1, P2, ...):
|
|
33
|
+
|
|
34
|
+
1. **Status:** ready, or excluded with its reason.
|
|
35
|
+
2. **Why and current behavior:** paths/symbols, constraints and verified findings.
|
|
36
|
+
3. **Decided behavior:** normal and boundary cases, what must not regress.
|
|
37
|
+
4. **Implementation guidance:** reuse, affected areas, invariants, backend impact and order.
|
|
38
|
+
Avoid making incidental file lists absolute when equivalent internals work.
|
|
39
|
+
5. **Dependencies and difficulty:** point IDs and your-action items it waits for; green/yellow/red
|
|
40
|
+
as estimates, not session limits.
|
|
41
|
+
6. **Acceptance:** stable criterion IDs (P1-A1), expected result, evidence procedure and verifier
|
|
42
|
+
(agent, user, or waived with reason).
|
|
43
|
+
|
|
44
|
+
Select only applicable categories:
|
|
45
|
+
|
|
46
|
+
| Category | Required information |
|
|
47
|
+
|---|---|
|
|
48
|
+
| Technical | Command/test or API operation, inputs, expected output and regression case |
|
|
49
|
+
| Interaction | Route, role, fixture references, actions and observable effect |
|
|
50
|
+
| Measurement | Selector, property, expected value/relation and justified tolerance; for parity, the reference element and compared properties |
|
|
51
|
+
| Perceptual | Comparative criterion that measurement cannot settle, surrounding context and approved reference if one exists |
|
|
52
|
+
|
|
53
|
+
Reference the project verification cycle once. A required check the agent cannot run names its
|
|
54
|
+
verifier: the user, or waived with the reason and the user's yes. Do not fabricate fixtures or
|
|
55
|
+
substitute weaker acceptance checks without agreement. An approved mockup is intent, not
|
|
56
|
+
application evidence.
|
|
57
|
+
|
|
58
|
+
For visual criteria identify IDs and evidence types. The principal normally performs denisco-visual-check;
|
|
59
|
+
only perceptual judgment uses an independent blind judge when available and permitted.
|
|
60
|
+
Delegate the whole check only on an explicit user request. The planning skill assigns sidecar
|
|
61
|
+
visualChecks entries with a unique ID, block, criteria and executor "principal" by default, or
|
|
62
|
+
"subagent" for the requested delegation. Record attempts/results with the matching executor.
|
|
63
|
+
|
|
64
|
+
## PLAN.md and STATE.md
|
|
65
|
+
|
|
66
|
+
Produced by planning-only denisco-handoff-implementation. PLAN is the block map; STATE is the current
|
|
67
|
+
picture with **Your actions** first; STATE-HISTORY.md keeps the history. Implementation starts on
|
|
68
|
+
the user's yes to the start question or a submitted execution prompt; neither specification nor
|
|
69
|
+
planning starts it by itself. HANDOFF holds decided behavior, not progress. A later blocker hunt
|
|
70
|
+
for a new point edits that point here in place and moves the replaced text to STATE-HISTORY.md.
|
|
71
|
+
|
|
72
|
+
## Operational link
|
|
73
|
+
|
|
74
|
+
Preserve task-local measurement in `<handoff-path>.workflow.json` (append after `.md`):
|
|
75
|
+
`schemaVersion: 1`, `taskId`, `handoff`, `plan`, `state`, `measurement`, and `blocks: []`.
|
|
76
|
+
Document paths are relative to this JSON; use existing paths or default to PLAN.md/STATE.md
|
|
77
|
+
alongside the handoff. Measurement is disabled by default: write `{ "status": "disabled" }` unless
|
|
78
|
+
the current user request or applicable project instructions explicitly enable workflow measurement
|
|
79
|
+
for this task. Use `{ "status": "unknown" }` only for a legacy or interrupted explicit activation
|
|
80
|
+
whose setup cannot yet be reconciled. Once explicitly enabled, denisco-workflow-benchmark's `bind --run
|
|
81
|
+
<file> --handoff <file>` populates the validated binding: absolute run, runId, benchmark taskId and
|
|
82
|
+
criteriaHash. Installed tooling, criteria or an old register do not activate measurement.
|
|
83
|
+
The implementation skill fills the planned block map; specification must not invent the split.
|
|
84
|
+
Do not copy token counts or changing outcomes into this file. Include its path in the outgoing
|
|
85
|
+
prompt even when the register lives outside the project. Propose, rather than write, in Plan Mode.
|
|
86
|
+
|
|
87
|
+
## Ready to hand over
|
|
88
|
+
|
|
89
|
+
Check code evidence, decided product choices, executable acceptance criteria with verifiers,
|
|
90
|
+
**Done when**, and the blocker table. Every blocker is decided, a your-action item or not in this
|
|
91
|
+
task; an open blocker means the handoff is not ready, so ask about it. Technical unknowns that
|
|
92
|
+
implementation will settle stay as stated hypotheses, each with the check that settles it.
|
|
93
|
+
|
|
94
|
+
When measurement is explicitly enabled, initialize/bind it and register this conversation through
|
|
95
|
+
denisco-workflow-benchmark `track --handoff <file> --provider <actual-provider> --phase specification`;
|
|
96
|
+
execute its returned nextCall yourself in a separate tool call. Retry a delayed transcript once;
|
|
97
|
+
retain any remaining gap in the handoff. Never pass a registration ticket to the next conversation.
|
|
98
|
+
When disabled, do not load, install or invoke denisco-workflow-benchmark and do not inspect unrelated runs.
|
|
99
|
+
|
|
100
|
+
Save the initial prompt with `planning-prompt --handoff <file> --save`, then run `--check`.
|
|
101
|
+
It works with an empty block map and without PLAN/STATE. It appends a managed section to HANDOFF,
|
|
102
|
+
preserving the specification; it never approves a plan or creates fictitious progress. Link the
|
|
103
|
+
section and provide its saved text. Plain printing is not delivery. Without the helper save and
|
|
104
|
+
reread this equivalent, replacing paths and measurement with actual values:
|
|
105
|
+
|
|
106
|
+
```text
|
|
107
|
+
Use denisco-handoff-implementation with <absolute HANDOFF.md>.
|
|
108
|
+
Phase: planning only. Read <absolute HANDOFF.md.workflow.json> and existing PLAN/STATE.
|
|
109
|
+
Check the blocker table and permission list; ask in chat about any unresolved item first.
|
|
110
|
+
Create or reconcile PLAN, STATE and the complete planned block map, preserving decisions and
|
|
111
|
+
observed progress. Select the first dependency-ready block and save/check its execution prompt in
|
|
112
|
+
STATE. Do not implement application code in this phase. Once the planning documents and prompt are
|
|
113
|
+
saved, choose the execution path as denisco-handoff-implementation specifies: prepare coordination and ask
|
|
114
|
+
its start question, or ask "Plan ready. Start <block>?". Only the user's yes to the start question
|
|
115
|
+
starts implementation.
|
|
116
|
+
Measurement is disabled. Preserve `measurement.status` as `disabled`; do not initialize, discover
|
|
117
|
+
or invoke measurement tooling or registers in this or later sessions.
|
|
118
|
+
In Plan Mode propose these deliverables in chat with writes pending. Once writing is permitted,
|
|
119
|
+
save/check them and ask; native plan approval or automatic mode does not start implementation.
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Only an explicit activation request replaces the disabled measurement sentence with the enabled
|
|
123
|
+
binding/setup instructions. Unavailable helpers or write restrictions leave an explicitly requested
|
|
124
|
+
setup pending; they do not activate measurement or remove the prompt or independent ready work.
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: denisco-project-context
|
|
3
|
+
description: "Explore or refresh a repository's business/architecture map and operational procedures for startup, login and tests. Use for onboarding or stale project context; not for deciding a feature or implementing a bug fix."
|
|
4
|
+
metadata:
|
|
5
|
+
version: "2.0.0"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Project context
|
|
9
|
+
|
|
10
|
+
Input: repository path, optional first-task area, optional refresh scope.
|
|
11
|
+
Output: a concise map and operating guide that a fresh agent can locate and reuse.
|
|
12
|
+
|
|
13
|
+
## Explore before asking
|
|
14
|
+
|
|
15
|
+
Read applicable project instructions and existing README/design/run/test documents. Inspect
|
|
16
|
+
manifests, entrypoints, module boundaries and verification tooling. Begin with a broad map,
|
|
17
|
+
then deepen the first-task area; do not read the entire repository or dependencies by default.
|
|
18
|
+
|
|
19
|
+
Record business purpose, modules, shared rules and integration boundaries. Label business meaning
|
|
20
|
+
inferred from code as inferred; ask only for consequential gaps that inspection cannot resolve.
|
|
21
|
+
Read important evidence yourself. Negative findings include scoped search evidence and date.
|
|
22
|
+
|
|
23
|
+
Discover startup commands, local/shared services, login procedure, roles, test commands, fixtures,
|
|
24
|
+
write permissions and restoration steps. Name the value of each prerequisite, not only the rule:
|
|
25
|
+
a group that must be selected, a day with usable data, an account with the required role. Record
|
|
26
|
+
where the executable tooling lives and whether it survives a new worktree.
|
|
27
|
+
Inspect existing denisco-visual-check configuration without copying sensitive values. A configured command
|
|
28
|
+
is not an executed command. Do not run production commands or write shared data just to complete
|
|
29
|
+
onboarding. Read-only discovery is sufficient to
|
|
30
|
+
produce an initial map, with runtime checks marked unverified.
|
|
31
|
+
|
|
32
|
+
Record the project's approved tool-permission entries. When a command needs a tool permission or
|
|
33
|
+
sandbox escalation that the project does not grant yet, propose one permanent entry: command
|
|
34
|
+
pattern, client settings file and reason. Add it to the settings and to the operating guide only
|
|
35
|
+
after the user's yes; permission settings never change without it.
|
|
36
|
+
|
|
37
|
+
## Produce and refresh
|
|
38
|
+
|
|
39
|
+
Read [document templates](references/project-documents.md). Reuse the project's documents and
|
|
40
|
+
add links rather than replacing or duplicating them. Otherwise use docs/agent-workflow/PROJECT.md
|
|
41
|
+
and OPERATIONS.md. A grown operating guide becomes an index over
|
|
42
|
+
docs/agent-workflow/operations/, keeping its own path stable for the skills that reference it.
|
|
43
|
+
Include an index link in existing agent instructions only within authorized scope.
|
|
44
|
+
In Plan Mode return the proposed contents and paths; materialize only when writes are allowed.
|
|
45
|
+
|
|
46
|
+
Track source path/symbol, verification date, snapshot and evidence level. Keep unknowns explicit.
|
|
47
|
+
Store machine paths/session files locally; references to approved credential sources may be documented,
|
|
48
|
+
but never credential values. Read the minimum relevant sections in subsequent task sessions.
|
|
49
|
+
|
|
50
|
+
On targeted refresh inspect changed/relevant areas and update only supported facts, retaining user
|
|
51
|
+
decisions and marking conflicts. Full refresh revisits the map and operational prerequisites; it
|
|
52
|
+
does not promise every business rule was exhaustively audited. Documentation guides exploration;
|
|
53
|
+
reverify load-bearing facts before changing code.
|
|
54
|
+
|
|
55
|
+
## Handoff and measurement
|
|
56
|
+
|
|
57
|
+
Report documents, coverage and unresolved runtime prerequisites. Provide the next prompt for
|
|
58
|
+
denisco-interactive-spec-definition on the selected task, if there is one. Do not invent a task.
|
|
59
|
+
When benchmarking, register initial discovery as exploration; record later refreshes as exploration
|
|
60
|
+
sessions linked to their task. Keep this investment visible rather than hiding it in implementation.
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Project documents
|
|
2
|
+
|
|
3
|
+
Follow existing documentation language; use Italian for a new user-facing project guide in this workflow.
|
|
4
|
+
Paths below are defaults, not competing copies of existing authoritative documents.
|
|
5
|
+
|
|
6
|
+
## PROJECT.md
|
|
7
|
+
|
|
8
|
+
- Repository identity and links to instructions/README/OPERATIONS.md.
|
|
9
|
+
- Business purpose and users; distinguish confirmed meaning from code-derived inference.
|
|
10
|
+
- Module map: responsibility, entrypoint/symbol and dependencies.
|
|
11
|
+
- Important flows and shared invariants; generated code and sources of truth.
|
|
12
|
+
- First-task area: relevant producers, consumers and verification.
|
|
13
|
+
- Evidence table: finding, source, checked date, commit/dirty state, discovered/executed/unknown.
|
|
14
|
+
- Coverage and open questions. Do not claim complete system knowledge.
|
|
15
|
+
|
|
16
|
+
## OPERATIONS.md
|
|
17
|
+
|
|
18
|
+
- Prerequisites and versions; commands with working directory and expected readiness signal.
|
|
19
|
+
- Services: local/shared, which configuration selects endpoints, actual permission boundaries.
|
|
20
|
+
- Authentication: entry route, human or approved automated procedure, required role, success signal,
|
|
21
|
+
session reuse/expiry. Refer to secret sources, never values.
|
|
22
|
+
- Verification matrix: area, command/interaction, prerequisites, expected outcome, last execution.
|
|
23
|
+
- Fixtures: case name, how to obtain non-sensitive test data, allowed writes and reset/cleanup.
|
|
24
|
+
- Visual capture: link existing config; otherwise viewport/theme/routes only when needed.
|
|
25
|
+
- Browser access for agents: interactive tools available (MCP or DevTools servers, extensions),
|
|
26
|
+
scripted drivers, and how each reaches the checked app state.
|
|
27
|
+
- Coordinated workers: the extra skills each programmer loads, with purpose and limits; the browser
|
|
28
|
+
tools to load; the ports and services workers may use or start. denisco-implementation-coordinator gives
|
|
29
|
+
workers only the skills listed here.
|
|
30
|
+
- Known environmental failures and expected noise, backed by evidence.
|
|
31
|
+
- Named prerequisites: a prerequisite stated as a rule is not documented until its value is named.
|
|
32
|
+
Which group, which day, which account, which flags, with the value, how it was obtained and when
|
|
33
|
+
it was last verified. A value that lives only in a command example or a script default is lost.
|
|
34
|
+
- Executable tooling: record where it lives and whether it survives a new worktree. An ignored
|
|
35
|
+
directory inside one worktree is not a durable home; name the shared location, what it holds, and
|
|
36
|
+
what stays per worktree. Paths, never secret values.
|
|
37
|
+
- Approved permission entries: command pattern, client and settings file, reason and approval date.
|
|
38
|
+
An entry is written only after the user's yes.
|
|
39
|
+
|
|
40
|
+
Use explicit "not executed" for commands only discovered in source. Missing browser tooling affects
|
|
41
|
+
browser checks, not unrelated unit tests. Missing write authorization leaves write tests blocked.
|
|
42
|
+
|
|
43
|
+
## Growing the operating guide
|
|
44
|
+
|
|
45
|
+
OPERATIONS.md is the entry point named by `operatingGuide` and by denisco-visual-check,
|
|
46
|
+
denisco-interactive-spec-definition and denisco-handoff-implementation. Do not rename or replace it when it grows:
|
|
47
|
+
it becomes the index.
|
|
48
|
+
|
|
49
|
+
Move a topic to `docs/agent-workflow/operations/<topic>.md` once it stops describing and starts
|
|
50
|
+
accumulating, which happens first to known failures and the verification matrix. Leave one index
|
|
51
|
+
row per topic: topic, file, one sentence of purpose, last update. Expected topics follow the
|
|
52
|
+
sections themselves: startup and build, services and environment, authentication, roles and flags,
|
|
53
|
+
verification, fixtures, known failures.
|
|
54
|
+
|
|
55
|
+
Split incrementally: move the topic you are touching rather than rewriting the document in one
|
|
56
|
+
pass. Keep the index short enough to read at once, and keep every moved fact's provenance with it.
|
|
57
|
+
|
|
58
|
+
## Updating existing documentation
|
|
59
|
+
|
|
60
|
+
Keep useful user-authored content. Update verified facts with a short reason; link rather than copy
|
|
61
|
+
procedures. If established documents disagree, record the discrepancy until source/runtime/user
|
|
62
|
+
evidence settles it. Keep workstation paths and saved sessions in the existing ignored local area.
|
|
63
|
+
|
|
64
|
+
## Refresh prompt
|
|
65
|
+
|
|
66
|
+
```text
|
|
67
|
+
Use denisco-project-context on this repository. Refresh the module map and operating guide for <area>.
|
|
68
|
+
Reuse existing documents, inspect the actual sources, and distinguish discovered from executed
|
|
69
|
+
procedures. Retain unresolved login/test prerequisites. Do not implement a feature.
|
|
70
|
+
```
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: denisco-visual-check
|
|
3
|
+
description: "Preview appearance choices or verify explicit visual requirements using browser measurements and perceptual comparisons. Use for size, color, spacing or visual hierarchy; not as a mandatory gate for every UI edit, functional test or new design project."
|
|
4
|
+
metadata:
|
|
5
|
+
version: "4.0.0"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Visual check
|
|
9
|
+
|
|
10
|
+
The principal normally loads this skill and performs captures, measurements and evidence recording.
|
|
11
|
+
Here principal means the implementation owner. A bounded programming worker with its own worktree
|
|
12
|
+
claim follows those responsibilities, including index updates and source corrections; it is not
|
|
13
|
+
the restricted visual-only child described below. Its coordinator remains read-only. When measured,
|
|
14
|
+
follow denisco-handoff-implementation's bounded contract for native executor attribution: operational
|
|
15
|
+
ownership does not turn a native child into a top-level session.
|
|
16
|
+
Delegate the whole check only on an explicit user request; record that choice in the workflow map.
|
|
17
|
+
Only perceptual judging uses an automatic fresh, independent agent when available and permitted.
|
|
18
|
+
|
|
19
|
+
An explicitly delegated visual-only child must load this skill and return assigned criterion IDs,
|
|
20
|
+
evidence paths and pass/fail/not-run results. It writes only its exclusive attempt directory:
|
|
21
|
+
no application source, PLAN/STATE, sidecar, register, shared tooling or new implementation CLI.
|
|
22
|
+
The principal merges shared records and applies source corrections after capture. Establish the
|
|
23
|
+
principal, criteria and directory before child writes. An unavailable explicitly requested child
|
|
24
|
+
leaves the check unverified unless the user changes that assignment.
|
|
25
|
+
|
|
26
|
+
Choose preview for an undecided appearance and check for an implemented visual requirement.
|
|
27
|
+
Do not reopen a settled choice. A fixed requirement may be implemented directly and checked.
|
|
28
|
+
|
|
29
|
+
## Scope the evidence
|
|
30
|
+
|
|
31
|
+
Select applicable criteria before acquiring images:
|
|
32
|
+
|
|
33
|
+
- Measurable: values/relations read from the browser, with expected values and justified tolerances.
|
|
34
|
+
Parity with an existing element is measurable: compare resolved computed values, inherited ones
|
|
35
|
+
included, and the rendered box (size, padding, gap, text position) of candidate and reference
|
|
36
|
+
in the same state. Declared CSS alone does not prove parity.
|
|
37
|
+
- Perceptual: comparative questions about hierarchy, balance or visibility in context that
|
|
38
|
+
measurement cannot settle.
|
|
39
|
+
- Functional: belongs to the project's interaction tests, not a blind visual judge.
|
|
40
|
+
|
|
41
|
+
Do not invent measurable or perceptual gates when that category is absent.
|
|
42
|
+
Never infer exact pixels/colors from screenshots. Cite resolved source values when browser
|
|
43
|
+
measurement is unavailable, and label them as source-derived rather than measured.
|
|
44
|
+
|
|
45
|
+
## Acquire only what the question needs
|
|
46
|
+
|
|
47
|
+
Use the project operating guide for start commands, login, roles and fixtures.
|
|
48
|
+
Read [configuration](references/project-config.md) when using an existing visual config or needing
|
|
49
|
+
persistent capture coordinates. A supplied screenshot or standalone preview needs no app config.
|
|
50
|
+
|
|
51
|
+
1. User screenshot: useful for perceptual review when the state is unreachable; measurements remain unchecked.
|
|
52
|
+
2. Standalone mockup: resolve tokens and reproduce surrounding context for a design decision.
|
|
53
|
+
Use available HTML/browser or artifact tools; no dependency on a named artifact skill.
|
|
54
|
+
3. Real app: reuse the configured server and available browser tooling; start it only as authorized.
|
|
55
|
+
Use an existing project run skill if available, otherwise the documented command.
|
|
56
|
+
4. Authenticated/stateful app: follow the operating guide, reuse a valid session and navigate to the fixture.
|
|
57
|
+
|
|
58
|
+
Prefer interactive browser tooling (an MCP browser, DevTools or an open automation session) to
|
|
59
|
+
explore the page, find selectors, measure and try a CSS hypothesis on the running app. Keep that
|
|
60
|
+
session and the project's incremental rebuild running between checks instead of relaunching a
|
|
61
|
+
whole scenario per question. A probe script reproduces the final evidence; it is not the
|
|
62
|
+
diagnostic loop. When the checked state exists only through script-side interception, keep that
|
|
63
|
+
browser open and attach the interactive tool to it when possible.
|
|
64
|
+
|
|
65
|
+
Check existing MCP browser tooling, project/global drivers and system browsers before proposing
|
|
66
|
+
installation. If tooling is absent, report the narrow missing capability. Do not install or kill
|
|
67
|
+
processes simply to obtain an image without task authorization. Track each resource this check starts by its returned handle or verified PID and ownership.
|
|
68
|
+
In a finally/cleanup path on success, failure or cancellation, close temporary browser contexts,
|
|
69
|
+
browser processes, shell jobs and servers created solely for the check. Preserve pre-existing or
|
|
70
|
+
shared services and resources explicitly needed for subsequent work, recording why they remain.
|
|
71
|
+
Use the environment's close/release operation for a returned child when available; a final response
|
|
72
|
+
alone does not prove its resources closed. The blind judge must not start any processes.
|
|
73
|
+
Never kill by a broad process name or port. Verify owned resources exited; if the tool cannot close
|
|
74
|
+
or verify one, report its identifier and pending cleanup without claiming success. Cleanup is part
|
|
75
|
+
of the check and must finish before the worktree claim is released.
|
|
76
|
+
|
|
77
|
+
Follow the environment's documented write permissions. Shared services do not authorize arbitrary
|
|
78
|
+
saves. A write test needs a permitted fixture and recovery procedure. Never embed credentials in
|
|
79
|
+
documents. Prefer user login plus saved session or an existing approved authentication mechanism.
|
|
80
|
+
|
|
81
|
+
Record viewport (default 1440x900, scale 1), rendered theme, route, state and capture provenance.
|
|
82
|
+
Match dimensions across images and crop to the element **plus surrounding context**.
|
|
83
|
+
|
|
84
|
+
## Organize artifacts
|
|
85
|
+
|
|
86
|
+
Group artifacts by task, not by session. Write probes, diagnostics and captures under
|
|
87
|
+
`<artifactsDir>/<taskId>/`, reusing the task ID of the handoff folder so that a task's documents
|
|
88
|
+
and its artifacts carry one name. Shared configuration and the index stay at the artifacts
|
|
89
|
+
root; nothing task-specific belongs there. The browser profile, the login helper and anything
|
|
90
|
+
reused across worktrees belong to toolingDir, outside the worktree, because an ignored directory
|
|
91
|
+
inside one does not survive the next checkout. Without an assigned task use a
|
|
92
|
+
descriptive slug and the same layout. Keep the outputs of one run in a subfolder named after it.
|
|
93
|
+
|
|
94
|
+
Name a probe after the criteria or points it covers, not after an ordinal from a superseded plan.
|
|
95
|
+
Read [the layout and index](references/project-config.md) before writing a new probe and reuse or
|
|
96
|
+
extend an existing one instead of recreating a near-duplicate.
|
|
97
|
+
|
|
98
|
+
An independent principal updates the index when writing artifacts. A delegated child writes only
|
|
99
|
+
inside its assigned attempt directory and returns exact proposed index rows; the principal merges
|
|
100
|
+
those rows serially after return. Shared probes, configuration and index updates belong to the
|
|
101
|
+
principal. Read existing probes for reuse; copy into the attempt directory before changing them.
|
|
102
|
+
The index records what exists and what superseded it, never that a criterion passed: results belong
|
|
103
|
+
to the run register.
|
|
104
|
+
|
|
105
|
+
## Preview
|
|
106
|
+
|
|
107
|
+
Show current state and the meaningful candidates at the same scale. Recommend one with evidence.
|
|
108
|
+
Label mockups as reproductions; they can be wrong about runtime behavior. A mockup cannot sign off
|
|
109
|
+
the implementation. If rendering is unavailable, explain the gap rather than substitute ASCII for
|
|
110
|
+
a decision about color or weight. Structural discussions can use prose or diagrams.
|
|
111
|
+
|
|
112
|
+
## Check
|
|
113
|
+
|
|
114
|
+
For a pre-edit baseline, the principal must wait for capture to finish before changing the
|
|
115
|
+
measured application. For post-edit checks, keep the relevant source, shared capture tooling and
|
|
116
|
+
fixture stable until capture finishes (and until the child returns when delegated). If they change during capture, disclose the overlap and
|
|
117
|
+
recapture affected evidence; an unchanged Git HEAD does not prove an unchanged dirty worktree.
|
|
118
|
+
|
|
119
|
+
Measure applicable criteria and their reference elements. Report selector, property, expected,
|
|
120
|
+
actual and pass/fail. A failed measurement prevents sign-off; independent diagnostics may continue.
|
|
121
|
+
|
|
122
|
+
For perceptual criteria, use [the blind judge contract](references/judge-prompt.md).
|
|
123
|
+
Spawn a fresh agent without inherited conversation only when the capability is available and
|
|
124
|
+
authorized. Otherwise offer user review and mark independent judgment unavailable; do not fabricate it.
|
|
125
|
+
The judge sees only anonymized images and comparisons. Preserve its observations verbatim and apply
|
|
126
|
+
the predeclared acceptance condition yourself; its preference is not a product decision.
|
|
127
|
+
A failed judgment allows one correction and one new judgment of the same criterion. If that also
|
|
128
|
+
fails, or contradicts passing measurements of the same properties, stop the loop: show the user the
|
|
129
|
+
images with the measurements and ask once to verify it from them, rewrite the criterion or waive it.
|
|
130
|
+
|
|
131
|
+
## Report
|
|
132
|
+
|
|
133
|
+
State evidence type (real app, supplied screenshot, mockup), applicable measurements, quoted judge
|
|
134
|
+
or user observations, criterion results and artifact paths. Use pass/fail/not-run per requirement.
|
|
135
|
+
Do not report a preview or partial visual evidence as full verification. If a judge cannot tell,
|
|
136
|
+
improve capture when justified or retain uncertainty; never soften the criterion until it agrees.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Blind visual judge
|
|
2
|
+
|
|
3
|
+
Use only for explicit perceptual criteria. Numerical criteria are measured separately.
|
|
4
|
+
No requirement for two screenshots: comparison with unchanged siblings in one image can suffice.
|
|
5
|
+
|
|
6
|
+
## Caller
|
|
7
|
+
|
|
8
|
+
- Start a fresh agent without conversation inheritance, when available and authorized. Limit its
|
|
9
|
+
tools to opening the listed images when the runtime allows it. Pixel or color computations in
|
|
10
|
+
an answer are a boundary deviation to record, not measurement evidence.
|
|
11
|
+
- Copy captures to neutral filenames A.png/B.png before sharing; remove revealing path labels.
|
|
12
|
+
- For two versions randomize A/B and retain the mapping outside the judge prompt.
|
|
13
|
+
- Provide comparable crops including context. Include an approved reference only if it exists.
|
|
14
|
+
Do not send an image whose content another listed image already contains.
|
|
15
|
+
- Withhold code, spec, intent, diff and pass/fail measurements.
|
|
16
|
+
- Ask comparative questions only. Do not request pixel sizes, coordinates or color values: those
|
|
17
|
+
are browser measurements.
|
|
18
|
+
- The judge starts no shell, browser, server or further agent. After its response, the caller uses
|
|
19
|
+
the available close/release operation and reports any unavailable cleanup; returning is not proof
|
|
20
|
+
of process exit. Register its native usage separately from the principal visual attempt.
|
|
21
|
+
- Preserve the original criterion on retries. An inconclusive verdict is a valid result.
|
|
22
|
+
- Declare the acceptance condition before judgment; a ranking alone is not a pass condition.
|
|
23
|
+
|
|
24
|
+
## Prompt
|
|
25
|
+
|
|
26
|
+
Send this boundary and only the applicable image/criterion entries:
|
|
27
|
+
|
|
28
|
+
```text
|
|
29
|
+
Judge only the appearance visible in the supplied images.
|
|
30
|
+
|
|
31
|
+
Boundary: do not read repository source, configuration, plans or documentation; do not run git;
|
|
32
|
+
do not search files or the web; do not invoke skills or other agents. Do not run shell commands,
|
|
33
|
+
scripts or other programs, and do not compute pixel or color values: judge by looking at the
|
|
34
|
+
images. You may open only the image paths explicitly listed below.
|
|
35
|
+
Do not reconstruct what changed or infer which version is newer.
|
|
36
|
+
Do not write files, install tools, or change the application. Return your observations in the response.
|
|
37
|
+
If context is insufficient, report that rather than investigating.
|
|
38
|
+
|
|
39
|
+
Images:
|
|
40
|
+
A: <neutral absolute image path>
|
|
41
|
+
B: <optional neutral absolute image path>
|
|
42
|
+
Approved design intent: <optional actual approved image>
|
|
43
|
+
|
|
44
|
+
Criteria:
|
|
45
|
+
1. <comparison, e.g. rank toolbar controls by visual weight and explain the visible signals>
|
|
46
|
+
|
|
47
|
+
For each criterion report the observation, visible evidence and A/B label where applicable.
|
|
48
|
+
Say "cannot tell from these images" when appropriate and identify a useful crop or additional view.
|
|
49
|
+
End with an unprompted observation, including "nothing" if applicable.
|
|
50
|
+
Do not give an overall score, infer intent or recommend implementation changes.
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Report the judge's words verbatim and decode labels separately. Keep user review distinct from
|
|
54
|
+
independent-agent review. If fresh judging is unavailable, record that limitation rather than
|
|
55
|
+
silently using a context-aware agent.
|