@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.
Files changed (42) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +89 -2
  3. package/bin/deniscodp-skills.mjs +4 -0
  4. package/package.json +23 -4
  5. package/scripts/catalog.mjs +68 -0
  6. package/scripts/cli.mjs +264 -0
  7. package/scripts/install.mjs +184 -0
  8. package/scripts/recommended.mjs +102 -0
  9. package/skills/denisco-handoff-implementation/SKILL.md +254 -0
  10. package/skills/denisco-handoff-implementation/references/blocker-checklist.md +71 -0
  11. package/skills/denisco-handoff-implementation/references/delegated-implementation.md +168 -0
  12. package/skills/denisco-handoff-implementation/references/ownership.md +105 -0
  13. package/skills/denisco-handoff-implementation/references/session-plan.md +195 -0
  14. package/skills/denisco-handoff-implementation/scripts/ownership.mjs +153 -0
  15. package/skills/denisco-implementation-coordinator/SKILL.md +237 -0
  16. package/skills/denisco-implementation-coordinator/agents/openai.yaml +2 -0
  17. package/skills/denisco-implementation-coordinator/references/documents.md +175 -0
  18. package/skills/denisco-implementation-coordinator/references/runtimes.md +105 -0
  19. package/skills/denisco-interactive-spec-definition/SKILL.md +126 -0
  20. package/skills/denisco-interactive-spec-definition/references/blocker-checklist.md +71 -0
  21. package/skills/denisco-interactive-spec-definition/references/handoff-template.md +124 -0
  22. package/skills/denisco-project-context/SKILL.md +60 -0
  23. package/skills/denisco-project-context/references/project-documents.md +70 -0
  24. package/skills/denisco-visual-check/SKILL.md +136 -0
  25. package/skills/denisco-visual-check/references/judge-prompt.md +55 -0
  26. package/skills/denisco-visual-check/references/project-config.md +118 -0
  27. package/skills/denisco-workflow-benchmark/SKILL.md +113 -0
  28. package/skills/denisco-workflow-benchmark/agents/openai.yaml +2 -0
  29. package/skills/denisco-workflow-benchmark/references/measurement.md +166 -0
  30. package/skills/denisco-workflow-benchmark/references/workflow-contract.md +371 -0
  31. package/skills/denisco-workflow-benchmark/scripts/bench.mjs +156 -0
  32. package/skills/denisco-workflow-benchmark/scripts/cases.mjs +46 -0
  33. package/skills/denisco-workflow-benchmark/scripts/configuration.mjs +71 -0
  34. package/skills/denisco-workflow-benchmark/scripts/discover.mjs +88 -0
  35. package/skills/denisco-workflow-benchmark/scripts/eval-worker.mjs +58 -0
  36. package/skills/denisco-workflow-benchmark/scripts/io.mjs +82 -0
  37. package/skills/denisco-workflow-benchmark/scripts/prepare.mjs +69 -0
  38. package/skills/denisco-workflow-benchmark/scripts/runs.mjs +235 -0
  39. package/skills/denisco-workflow-benchmark/scripts/state-prompt.mjs +96 -0
  40. package/skills/denisco-workflow-benchmark/scripts/tracking.mjs +91 -0
  41. package/skills/denisco-workflow-benchmark/scripts/usage.mjs +175 -0
  42. 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.