@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,237 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: denisco-implementation-coordinator
|
|
3
|
+
description: "Turn a decided handoff into a launchable coordination plan, then execute or resume it through sequential programmers with fresh contexts, bounded assignments and a report per worker. Use when explicitly invoked to prepare, run or resume coordinated development, or when denisco-handoff-implementation planning selects the coordinated path; not for specification, single-session direct programming or parallel execution."
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
metadata:
|
|
6
|
+
version: "4.3.0"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Implementation coordinator
|
|
10
|
+
|
|
11
|
+
Input: a decided handoff, its PLAN/STATE when already planned, and a request to prepare, execute or
|
|
12
|
+
resume coordination. Read [coordination documents](references/documents.md) before writing:
|
|
13
|
+
COORDINATOR.md, COORDINATOR-HISTORY.md and the packet files are the coordinator's documents,
|
|
14
|
+
alongside STATE by default. HANDOFF, PLAN, STATE, STATE-HISTORY, the operational sidecar and
|
|
15
|
+
application code remain read-only for the coordinator, even between workers. The programmer
|
|
16
|
+
updates them only through the existing denisco-handoff-implementation workflow, including its scope,
|
|
17
|
+
permission and verification rules. An inconsistency is a finding to route through that workflow,
|
|
18
|
+
not permission to rewrite its inputs. The planning phase and the post-closure session below are
|
|
19
|
+
denisco-handoff-implementation sessions of this conversation, under that skill's rules and its own claim.
|
|
20
|
+
|
|
21
|
+
Load the installed `denisco-handoff-implementation` skill and read its `references/delegated-implementation.md`,
|
|
22
|
+
session plan and ownership contract before preparation or dispatch. Version 8.0.0 or a compatible
|
|
23
|
+
later version must support the worker profile and delivery template; an older installation is a
|
|
24
|
+
capability blocker, not something to override in a prompt. Locate the actual installed package and
|
|
25
|
+
pass its path to each worker. Read [runtime capabilities](references/runtimes.md) for the current
|
|
26
|
+
provider during preparation and recheck actual capabilities before launch. Preparation never
|
|
27
|
+
launches trial workers or judges.
|
|
28
|
+
|
|
29
|
+
## From handoff to a launchable plan
|
|
30
|
+
|
|
31
|
+
One preparation phase takes a decided handoff to a plan the user can launch. It starts on the
|
|
32
|
+
user's yes to the specification's planning question when planning selects the coordinated path,
|
|
33
|
+
on an explicit invocation naming a handoff or STATE, or on an explicit preparation request. A
|
|
34
|
+
generic first request to coordinate through completion still prepares first. Complete the entry and
|
|
35
|
+
ownership checks in Establish the run before any preparation writes.
|
|
36
|
+
|
|
37
|
+
1. **Technical plan.** Without PLAN, STATE and the planned block map, run denisco-handoff-implementation's
|
|
38
|
+
planning-only phase in this conversation first, including its blocker check and saved direct
|
|
39
|
+
execution prompt, then release its claim. An undecided handoff goes back to
|
|
40
|
+
denisco-interactive-spec-definition. An existing plan is read and reconciled, not replanned.
|
|
41
|
+
2. **Path check.** Count implementation blocks, final integration excluded. With one block, or when
|
|
42
|
+
the runtime cannot create fresh-context workers, state the reason and end with
|
|
43
|
+
denisco-handoff-implementation's "Plan ready. Start <block>?" instead of a coordination proposal. An
|
|
44
|
+
explicit user request to coordinate a one-block task is honored.
|
|
45
|
+
3. **Session plan.** Draft all remaining groups, including blocked work and final integration, with
|
|
46
|
+
block IDs, dependencies and grouping reasons. This is a tentative session plan, not a replacement
|
|
47
|
+
PLAN. Save both coordination documents, the preparation record and a concrete execution prompt;
|
|
48
|
+
reread them before reporting readiness. If no work is dependency-ready, record the blocker and a
|
|
49
|
+
pending continuation rather than ask to launch an unusable assignment.
|
|
50
|
+
4. **Start question.** Ask "Coordination ready. Start A1?" with the first assignment's ID, the worker
|
|
51
|
+
profile and the extra skills the operating guide lists, or that it lists none. Recommend starting
|
|
52
|
+
execution in a fresh conversation with the saved prompt, because the coordinator re-reads its
|
|
53
|
+
whole context at every return and relay; a yes here remains valid. Add that after a usage-limit
|
|
54
|
+
stop only the launching conversation, continued without clearing it, can resume the interrupted
|
|
55
|
+
worker; a new conversation gives the residual to a new worker.
|
|
56
|
+
|
|
57
|
+
The user's yes starts execution in this conversation; otherwise end preparation with the saved
|
|
58
|
+
prompt. A later user-submitted execution prompt or equivalent scoped request starts the prepared
|
|
59
|
+
coordination. If the user explicitly requests both phases without a pause, preserve that
|
|
60
|
+
authorization, materialize/check preparation and proceed; do not invent an extra approval contrary
|
|
61
|
+
to the explicit request. Native plan approval, a bare "Implement the plan." or tool-mode changes
|
|
62
|
+
alone never authorize programmer launches.
|
|
63
|
+
|
|
64
|
+
In Plan Mode propose only the current phase and identify pending writes. After permission to write,
|
|
65
|
+
finish that phase; preparation then reaches its start question, not automatic execution. An execution
|
|
66
|
+
request for missing coordination documents prepares them first under the same phase boundary.
|
|
67
|
+
On an explicitly requested resume, reconcile the existing execution authorization and lifecycle;
|
|
68
|
+
do not ask for approval of every group. Reading saved prompts or stale active metadata never launches work.
|
|
69
|
+
|
|
70
|
+
## Worker profile
|
|
71
|
+
|
|
72
|
+
The default profile is light: model inherited and effort `medium` for every programmer and the
|
|
73
|
+
integration worker, red blocks included. Request the effort through the spawn tool; where the runtime
|
|
74
|
+
exposes no effort setting, the worker inherits and COORDINATOR says so. Every packet limits reading
|
|
75
|
+
to the assigned HANDOFF points plus the sections they cite, and asks for targeted checks: browser
|
|
76
|
+
checks of the assigned criteria, and test or build output read as summary and failures only, with
|
|
77
|
+
the full log kept in a file. The full profile (inherited effort) applies to the one automatic recovery
|
|
78
|
+
attempt and whenever the user asks for it. Extra skills come only from the operating guide's
|
|
79
|
+
coordinated-workers section; without that section workers get none. Record the requested and
|
|
80
|
+
observed profile for every attempt.
|
|
81
|
+
|
|
82
|
+
## Establish the run
|
|
83
|
+
|
|
84
|
+
Read project instructions, handoff, PLAN, STATE, operational JSON and relevant operating guidance.
|
|
85
|
+
Preserve user changes and existing evidence. On a new human session, ask about pending Your actions
|
|
86
|
+
and external changes once; a same-conversation start or internal worker rotation does not repeat it.
|
|
87
|
+
Resolve the authorized scope and any explicit limits from the current request and recorded decisions.
|
|
88
|
+
Between workers record new human answers in COORDINATOR for the next programmer to integrate through
|
|
89
|
+
the standard workflow. During an active assignment relay answers for the worker to record; defer
|
|
90
|
+
your own document writes until handover. Do not write them into STATE yourself. Reconcile COORDINATOR,
|
|
91
|
+
the technical evidence and actual ownership before proceeding. A technical plan change requires
|
|
92
|
+
refreshing the proposed groups, with its reason preserved in COORDINATOR-HISTORY.
|
|
93
|
+
|
|
94
|
+
Require fresh-context creation, worker communication/results and a safe ownership handover;
|
|
95
|
+
[runtime capabilities](references/runtimes.md) says how each runtime closes a returned worker.
|
|
96
|
+
Check capacity before each launch against the next assignment, never the whole plan: launch when
|
|
97
|
+
it fits. When the remaining chain outgrows what the runtime can reclaim, stop at a checkpoint with
|
|
98
|
+
the resume prompt, so a new conversation continues the same chain, authorization and recovery
|
|
99
|
+
allowance. Capability findings, capacity included, live in COORDINATOR and are rechecked at every
|
|
100
|
+
entry; a saved prompt carries only the user's authorization and limits. A recorded user condition
|
|
101
|
+
that repeats an earlier capability finding still binds: when the remaining work no longer depends
|
|
102
|
+
on it, say so and ask once whether to lift it.
|
|
103
|
+
If these capabilities become unavailable after preparation, leave a manual continuation in COORDINATOR before
|
|
104
|
+
execution and report the missing capability. Every blocked stop names the ways on, each with the
|
|
105
|
+
prompt to send: what can launch now, a runtime that has the missing capability, or direct
|
|
106
|
+
execution if the user chooses it. Do not silently perform all implementation in this
|
|
107
|
+
conversation, launch another CLI as a fallback, or change global configuration. Record limitations
|
|
108
|
+
without claiming that a handoff was saved if writes are blocked. Live context telemetry is optional;
|
|
109
|
+
cumulative token usage is not window occupancy.
|
|
110
|
+
|
|
111
|
+
Acquire the worktree claim for coordinator bookkeeping only when no worker can still write.
|
|
112
|
+
Record phase, authorization and limits in COORDINATOR, with decisions in COORDINATOR-HISTORY.
|
|
113
|
+
Document ownership remains limited even while holding the claim. With explicitly enabled and
|
|
114
|
+
already bound measurement, register this conversation before its workers using the benchmark
|
|
115
|
+
contract: planning for preparation, implementation for execution-only entry; one native conversation
|
|
116
|
+
keeps one registration with its phase history explained. Ownership bookkeeping and permitted
|
|
117
|
+
measurement records are the only non-document writes for the coordinator. Never call benchmark
|
|
118
|
+
close, prompt save/clear or bind to mutate technical documents. Missing setup goes through the
|
|
119
|
+
programmer's standard workflow; keep attribution gaps explicit. Otherwise leave measurement inactive.
|
|
120
|
+
Release the claim before dispatching a worker; keep its token out of prompts and STATE.
|
|
121
|
+
|
|
122
|
+
## Assign, receive, repeat
|
|
123
|
+
|
|
124
|
+
1. Select dependency-ready work within the authorized plan. Use colors as difficulty estimates,
|
|
125
|
+
then consider shared code, exploration and verification effort. A red block alone, two related
|
|
126
|
+
yellows or several greens are examples, not quotas. Preserve coherent changes, prerequisite
|
|
127
|
+
order and the plan's release boundaries. Narrow future groups when deliveries show underestimated
|
|
128
|
+
effort; explain the selection in COORDINATOR, preserving the prior proposal and rationale in
|
|
129
|
+
COORDINATOR-HISTORY. An unresolved verification gap blocks only work that depends on it. User
|
|
130
|
+
checks in Your actions do not stop the chain: relay them and continue with ready work. A verdict
|
|
131
|
+
asking for a change becomes a correction assignment placed before final integration and before
|
|
132
|
+
any release that needs it; a small correction within the next worker's points may open that
|
|
133
|
+
assignment. Recheck proposed groups against current technical documents before dispatch; only
|
|
134
|
+
the programmer can change technical blocks or criteria.
|
|
135
|
+
2. Under coordinator ownership, save the exact packet in the attempt's packet file, record the
|
|
136
|
+
assignment (ordered block IDs and the delegated contract's fields) in COORDINATOR and append a
|
|
137
|
+
prepared-attempt entry to COORDINATOR-HISTORY. Release ownership and create a new worker with
|
|
138
|
+
no inherited conversation, using the worker profile. Pass document paths, authorization evidence,
|
|
139
|
+
known answers and the assignment, not full transcripts; cite the COORDINATOR-HISTORY entries the
|
|
140
|
+
worker needs instead of the whole history. A failed launch leaves a prepared, unexecuted
|
|
141
|
+
assignment. Follow the document contract for deferred lifecycle recording: no post-launch write
|
|
142
|
+
may race the worker's acquisition.
|
|
143
|
+
3. While the worker owns the worktree, remain read-only, including tests/builds, STATE and metrics.
|
|
144
|
+
Keep the user informed with short progress updates, checking the worker's actual status
|
|
145
|
+
whenever the user writes: a stop may arrive without a notification. Relay necessary worker
|
|
146
|
+
questions to the user and return answers without inventing them. The worker records answers and
|
|
147
|
+
continues independent work; the coordinator is the sole user-facing questioner. Route user stop or scope
|
|
148
|
+
changes promptly; request orderly checkpoint/cleanup and verify quiescence before another writer.
|
|
149
|
+
A stop or launch restriction covers every agent the coordinator would start, judges included,
|
|
150
|
+
unless the user exempts it. An announced plan with an opt-out is not consent: wait for the
|
|
151
|
+
answer before launching and never record silence as approval. A worker paused for a judge
|
|
152
|
+
relay keeps ownership; relay per [runtime capabilities](references/runtimes.md) and resume
|
|
153
|
+
that worker with the verbatim observations.
|
|
154
|
+
4. Receive the structured delivery. Inspect STATE, history and cited evidence for scope, unresolved
|
|
155
|
+
criteria and consistency; inspect code/logs when a discrepancy requires it. A worker's "done"
|
|
156
|
+
alone is insufficient. An interim runtime notice that the worker still waits on its own
|
|
157
|
+
background commands is not a delivery: stay read-only and keep waiting.
|
|
158
|
+
Close the returned worker right away with the runtime's stop/close operation, or the closure
|
|
159
|
+
runtime capabilities define where none exists, and confirm that it, its tasks and its resources
|
|
160
|
+
cannot continue writing. Services
|
|
161
|
+
that stay up are the ones the delivery hands over with port and PID; a worker never stays alive
|
|
162
|
+
to keep a service running. Release finite runtime slots; if capacity cannot be reclaimed, stop
|
|
163
|
+
with a continuation rather than reuse a full context.
|
|
164
|
+
5. Acquire a fresh claim for bookkeeping. Record the delivery, closure, usage row and coordination
|
|
165
|
+
decision as the document contract specifies, update COORDINATOR, prepare the next attempt and
|
|
166
|
+
release. Request any technical reconciliation from a programmer through the standard workflow;
|
|
167
|
+
do not edit STATE or certify criteria yourself. Once the next worker is launched, or the run
|
|
168
|
+
stops, report the return to the user with the return card.
|
|
169
|
+
|
|
170
|
+
Every assignment gets a new worker, including a continuation of the same unfinished block; a worker
|
|
171
|
+
never expands its own range. The one exception is an external interruption, such as a usage limit
|
|
172
|
+
(429) or network failure, of a worker that holds the claim or has work in progress: resume that same
|
|
173
|
+
worker by message, naming the cause, and record the resume after its return. It is not a recovery
|
|
174
|
+
and leaves the allowance unchanged. Only the conversation that launched the worker can message it,
|
|
175
|
+
and a usage limit usually stops that conversation too. When it is gone (closed, cleared or replaced
|
|
176
|
+
by a new one), the worker cannot resume: verify the stop under the stopped-writer rule, release its
|
|
177
|
+
claims by their exact IDs and give the residual to a new worker with the same profile. That is
|
|
178
|
+
still no recovery.
|
|
179
|
+
|
|
180
|
+
A worker that ends without a delivery and without your stop, for example stopped by the user from
|
|
181
|
+
the runtime's interface, leaves a user decision. Keep it stopped and launch nothing. Report its last
|
|
182
|
+
checkpoint, uncommitted work and held claims, then ask once: resume that worker, give the residual
|
|
183
|
+
to a new worker, or stop the run. A resume or a new worker follows the rules above; a stop follows
|
|
184
|
+
Final integration and stopping.
|
|
185
|
+
|
|
186
|
+
Keep the coordinator context small: retain current decisions, delivery summaries and evidence
|
|
187
|
+
paths. Read historical details only for a concrete inconsistency or recovery. Save a coordination
|
|
188
|
+
resume prompt in COORDINATOR. The ordinary implementation prompt in STATE remains worker-owned.
|
|
189
|
+
|
|
190
|
+
## Partial progress and recovery
|
|
191
|
+
|
|
192
|
+
A worker may return early for context pressure, a real blocker or an explicit limit. Preserve
|
|
193
|
+
unfinished work and assign a precise residual task to a new worker; partial progress is not
|
|
194
|
+
verification. For an assignment ending without useful progress, allow one automatic recovery with
|
|
195
|
+
a documented diagnosis, the full profile and a changed approach or smaller scope. Persist that
|
|
196
|
+
recovery allowance across workers and coordinator resumes. After another no-progress outcome on the
|
|
197
|
+
same unresolved obstacle, ask the user and stop that retry chain; continue only independently ready
|
|
198
|
+
work. Renaming an assignment or repeating the same failed check does not reset the allowance.
|
|
199
|
+
Useful progress means a supported implementation, verified criterion or resolved prerequisite, not
|
|
200
|
+
another summary or reread. A perceptual criterion still failing after denisco-visual-check's single
|
|
201
|
+
correction round is a user question relayed through the coordinator, not another correction
|
|
202
|
+
assignment or judge.
|
|
203
|
+
|
|
204
|
+
A crash or missing delivery requires ownership recovery first. Check actual worker/process status
|
|
205
|
+
and children; neither idle files nor an old claim proves exit. Apply the existing stopped-writer
|
|
206
|
+
recovery contract. If safety is uncertain, remain read-only and request the concrete coordination
|
|
207
|
+
needed. Preserve failures and recover from repository evidence rather than assuming completion.
|
|
208
|
+
Use the document contract's legacy migration: read old Coordination notes without changing them;
|
|
209
|
+
only a programmer can archive/replace those notes through the standard STATE/HISTORY procedure.
|
|
210
|
+
|
|
211
|
+
## Final integration and stopping
|
|
212
|
+
|
|
213
|
+
After all implementation groups, dispatch a fresh worker with kind `integration`: complete the
|
|
214
|
+
plan's cross-block checks and remaining acceptance verification, correcting defects only within
|
|
215
|
+
the approved task. Use the same bounded contract with explicit correction scope. If too large,
|
|
216
|
+
checkpoint and split the residual integration work into fresh assignments. Reverify affected
|
|
217
|
+
criteria after corrections; do not rerun unchanged valid checks without a reason.
|
|
218
|
+
|
|
219
|
+
Finish only when Done when and required checks are met, with waivers and user-reported checks
|
|
220
|
+
identified. Keep technical verification separate from user acceptance and pending accounting.
|
|
221
|
+
If remaining work needs user/external action, a capability, an exhausted recovery decision or an
|
|
222
|
+
explicit limit, persist the unfinished state and continuation. Without an explicit limit, continue
|
|
223
|
+
until completion or a real stop; elapsed 20-30 minutes is not a default deadline. Honor feasible
|
|
224
|
+
time/assignment limits at safe checkpoints; claim enforcement of a monetary limit only with
|
|
225
|
+
reliable cost data. If a requested hard limit cannot be enforced, resolve it before dispatch.
|
|
226
|
+
|
|
227
|
+
Call a release or intermediate commit ready to merge only after checking commit order: every
|
|
228
|
+
commit of that release, its corrections included, precedes the first commit of later work.
|
|
229
|
+
|
|
230
|
+
Before ending, reconcile ownership, active workers, evidence and saved prompts. Report completed
|
|
231
|
+
work, failed/unavailable checks and the precise next step. End with Your actions or "Nothing needed
|
|
232
|
+
from you." This protocol is procedural: local tests do not prove model adherence or token savings.
|
|
233
|
+
|
|
234
|
+
After closure, a user request in this conversation, such as a merge, a push or a small correction,
|
|
235
|
+
runs as a direct denisco-handoff-implementation session: acquire its claim, follow its permission list and
|
|
236
|
+
always-ask rules, and update STATE and STATE-HISTORY consistently. Record the switch and its outcome
|
|
237
|
+
in COORDINATOR-HISTORY under the same claim, then release. A new goal still becomes a new task.
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
# Coordination documents
|
|
2
|
+
|
|
3
|
+
Read before preparation, execution or resume. Default to COORDINATOR.md, COORDINATOR-HISTORY.md and
|
|
4
|
+
the `coordinator-packets/` folder beside the actual STATE resolved from the handoff's operational
|
|
5
|
+
context, not an assumed task root. Honor explicit project paths and put the real paths in prompts.
|
|
6
|
+
An existing document must match this task/worktree; report collisions rather than overwrite another
|
|
7
|
+
task. No new sidecar schema. Write these documents and the user-facing reports in the user's language.
|
|
8
|
+
|
|
9
|
+
## Authority and writers
|
|
10
|
+
|
|
11
|
+
| Resource | Writer during coordinated execution | Authority |
|
|
12
|
+
|---|---|---|
|
|
13
|
+
| HANDOFF | Programmer through the standard workflow | Decided scope, requirements and permission rules |
|
|
14
|
+
| PLAN and operational block map | Programmer through the standard workflow | Technical blocks, dependencies and criteria |
|
|
15
|
+
| STATE | Programmer through the standard workflow | Current technical results, evidence, blockers and direct continuation |
|
|
16
|
+
| STATE-HISTORY | Programmer, append-only | Session history and replaced technical decisions/results |
|
|
17
|
+
| COORDINATOR | Coordinator | Current grouping proposal, assignment, worker usage, coordination limits and continuation |
|
|
18
|
+
| COORDINATOR-HISTORY | Coordinator, append-only | Proposed/revised groups, actual attempts, observations and reasons |
|
|
19
|
+
| `coordinator-packets/<attempt-id>.md` | Coordinator, once per attempt | Exact packet sent to that worker |
|
|
20
|
+
|
|
21
|
+
The coordinator reads technical evidence and reports discrepancies; the programmer resolves them
|
|
22
|
+
through denisco-handoff-implementation. Regrouping existing blocks does not authorize creating, deleting
|
|
23
|
+
or reinterpreting them. Neither holding the worktree claim nor owning a document expands task scope.
|
|
24
|
+
Programmers, including the final integration worker, read but never edit the coordination documents.
|
|
25
|
+
The coordinator never appends technical session entries, rewrites technical state, changes the map,
|
|
26
|
+
or repairs HANDOFF/PLAN on its own. All required technical updates follow the existing workflow.
|
|
27
|
+
Standard measurement helpers remain opt-in and run only under ownership; coordinator registration
|
|
28
|
+
and reports may update measurement records, but never technical documents through indirect commands.
|
|
29
|
+
|
|
30
|
+
## COORDINATOR.md: current picture
|
|
31
|
+
|
|
32
|
+
Keep it short enough to resume without reading the full history. Use these sections:
|
|
33
|
+
|
|
34
|
+
1. **Task and phase:** links to HANDOFF, PLAN, STATE, STATE-HISTORY, operational JSON and coordination
|
|
35
|
+
history; worktree; observed technical plan revision/date or content fingerprint; last update.
|
|
36
|
+
Distinguish preparation requested, prepared, executing, blocked, finished and cancelled.
|
|
37
|
+
2. **Authorization and constraints:** preparation request and, separately, execution request/answer,
|
|
38
|
+
dates and scope. State the scope as the task's work: the plan's blocks, corrections arising from
|
|
39
|
+
the user's verdicts within HANDOFF points, and final integration; never a list of assignment IDs,
|
|
40
|
+
so regrouping leaves it current. Permission-list reference; limits and progress against them;
|
|
41
|
+
measurement state; worker profile and extra skills with their source. Include newly received
|
|
42
|
+
human answers awaiting the programmer's standard recording. Prepared does not mean authorized or
|
|
43
|
+
launched. Remove forwarded pending answers only after technical recording.
|
|
44
|
+
3. **Proposed session plan:** ordered groups covering all remaining authorized work and integration.
|
|
45
|
+
Each row names stable assignment ID, kind, exact block IDs, dependencies/readiness, residual work,
|
|
46
|
+
reason for grouping and a one-line status: proposed, current, returned or superseded, plus, once
|
|
47
|
+
returned, verified blocks, commits and pending user checks. Mark blocked proposals. Future rows
|
|
48
|
+
are provisional; revise grouping when technical evidence changes, preserving history.
|
|
49
|
+
4. **Worker usage:** one row per attempt with raw observations only: attempt, profile, blocks with
|
|
50
|
+
colors, criteria worked, tokens, tool uses and duration as the runtime reports them at completion,
|
|
51
|
+
and lines added/removed by the attempt's commits; then the total. Under the table state that
|
|
52
|
+
tokens are the worker's accumulated context rather than billed usage, that the coordinator is
|
|
53
|
+
excluded, and which rows a resume makes partial. Unknown values stay unknown. Add derived ratios
|
|
54
|
+
or analysis only when the user asks.
|
|
55
|
+
5. **Current execution:** link to the current packet file, attempt ID, worker handle if observed,
|
|
56
|
+
requested and observed provider/model/effort, lifecycle observation and source, last returned
|
|
57
|
+
assignment/evidence references, services handed over (port, PID, owner), outstanding cleanup and
|
|
58
|
+
next action. Where the runtime has a concurrent-agent limit, record live agents against it at
|
|
59
|
+
each launch. Persist recovery usage per unresolved obstacle (`0` or `1`); new attempt names,
|
|
60
|
+
external-interruption resumes and coordinator resumes do not change it.
|
|
61
|
+
6. **Continuation:** phase-correct launch/resume prompt or exact blocker. Keep prompts here outside
|
|
62
|
+
STATE's generated section. On completion/cancellation remove runnable obsolete prompts, keeping
|
|
63
|
+
remaining gaps and history. A manual fallback names the pending technical step and uses the
|
|
64
|
+
existing STATE continuation where applicable; it does not rewrite STATE. When STATE has no
|
|
65
|
+
continuation for that step, the fallback gives the complete direct request in the
|
|
66
|
+
denisco-handoff-implementation next-prompt form, so the user can always continue.
|
|
67
|
+
|
|
68
|
+
Do not duplicate the full criterion table or technical history. A summary such as "worker reports
|
|
69
|
+
B3-B5 verified; checked against STATE and linked artifacts; B6 remains incomplete" points at its
|
|
70
|
+
sources and names the inspection. Unknown model/effort or occupancy stays unknown. The configured
|
|
71
|
+
model is not proof of the actual runtime model. Record a new context only with observed fresh-instance
|
|
72
|
+
creation; never describe a clear/reset operation that was not performed.
|
|
73
|
+
|
|
74
|
+
## COORDINATOR-HISTORY.md: append-only observations
|
|
75
|
+
|
|
76
|
+
Create it during preparation with the initial grouping and rationale. Keep dated entries for
|
|
77
|
+
revisions, prepared attempts, launch failures, interruptions and resumes, returned attempts,
|
|
78
|
+
recovery, post-closure sessions and final closure. Preserve the replaced grouping before updating
|
|
79
|
+
the current proposal. Give each returned attempt one entry with these fields, writing "unknown" for
|
|
80
|
+
anything not observed rather than a reconstructed guess:
|
|
81
|
+
|
|
82
|
+
- **Assignment:** assignment/attempt IDs, kind, exact blocks or residual work, grouping reason,
|
|
83
|
+
authorization reference and packet file link.
|
|
84
|
+
- **Launch:** native worker reference (agent ID), launch time, fresh-context setting, profile
|
|
85
|
+
requested versus observed, each with its tool/log evidence. Keep private log bodies and secrets out.
|
|
86
|
+
- **Interruptions:** cause (external, user stop or crash), time, resume by message or new worker
|
|
87
|
+
with the reason (for a user stop, the user's answer), recovery allowance after it.
|
|
88
|
+
- **Delivery:** the worker's report in brief: blocks worked, criteria, commits, questions, residual
|
|
89
|
+
work and stop reason.
|
|
90
|
+
- **Coordinator check:** what was checked against STATE, its dated HISTORY entry and actual evidence;
|
|
91
|
+
discrepancies stay explicit. Code revision and relevant dirty-worktree facts link to worker evidence.
|
|
92
|
+
- **Closure:** return time, how the worker was closed, ownership release, child/resource cleanup and
|
|
93
|
+
services handed over, each supported or explicitly unconfirmed. A response alone does not prove
|
|
94
|
+
exit or release.
|
|
95
|
+
- **Usage:** the values of its Worker usage row.
|
|
96
|
+
- **Next decision:** continue, regroup, recover, wait or finish, with the reason and recovery allowance.
|
|
97
|
+
|
|
98
|
+
Distinguish planned work, worker statements and coordinator observations. Link to stable assignment
|
|
99
|
+
IDs, dated technical history entries and concrete artifacts instead of relying only on mutable STATE.
|
|
100
|
+
Later evidence corrects a prior assertion by a new entry, never by erasing the original.
|
|
101
|
+
|
|
102
|
+
## Return card
|
|
103
|
+
|
|
104
|
+
After each return, once the next worker is launched or the run stops, report in chat:
|
|
105
|
+
|
|
106
|
+
- one headline sentence with the outcome;
|
|
107
|
+
- **Ax-n (blocks):** what changes for the user, criteria passed or pending, commits, usage;
|
|
108
|
+
- **Now:** the worker just launched and its blocks, or why the run stopped;
|
|
109
|
+
- **Your actions:** numbered user checks saying where and how to verify, or "Nothing needed from you."
|
|
110
|
+
|
|
111
|
+
The card states only what COORDINATOR-HISTORY records; details stay there and in STATE.
|
|
112
|
+
|
|
113
|
+
## Lifecycle recording without competing writers
|
|
114
|
+
|
|
115
|
+
Before launch, while holding its own claim, the coordinator writes the exact packet to
|
|
116
|
+
`coordinator-packets/<attempt-id>.md`, records the prepared attempt ID in both coordination
|
|
117
|
+
documents with a link to that file, then releases. A packet file is written once; a new attempt gets
|
|
118
|
+
a new file. After dispatch the coordinator remains read-only even if the programmer has not acquired
|
|
119
|
+
yet: a transient free claim is not a safe write window.
|
|
120
|
+
The programmer records assignment/attempt ID and observed worker identity in STATE and its technical
|
|
121
|
+
history through the standard workflow. It returns launch/configuration and closure evidence in its
|
|
122
|
+
delivery; it never edits COORDINATOR. The coordinator appends the actual observations only after
|
|
123
|
+
quiescence, release and its own fresh claim, retaining both occurrence and recording times when known.
|
|
124
|
+
|
|
125
|
+
Consequently a coordination file may still say prepared while a worker is active. It is a last
|
|
126
|
+
persisted observation, not a live process registry. On resume, correlate attempt ID with native
|
|
127
|
+
peer/invocation metadata, ownership and the worker's technical records before any relaunch. If launch
|
|
128
|
+
outcome or continued writes are uncertain, stay read-only and resolve that uncertainty; no timeout
|
|
129
|
+
turns a prepared record into proof that nothing started.
|
|
130
|
+
|
|
131
|
+
## Prompts and phase boundary
|
|
132
|
+
|
|
133
|
+
Save concrete paths and actual scope, not placeholders. These templates illustrate the contract:
|
|
134
|
+
|
|
135
|
+
```text
|
|
136
|
+
Use denisco-implementation-coordinator to execute the prepared coordination in <COORDINATOR.md>
|
|
137
|
+
for <HANDOFF.md>. Read <STATE.md>, the technical plan and applicable instructions.
|
|
138
|
+
I authorize sequential bounded programmers through the recorded task scope, including final
|
|
139
|
+
integration, with the recorded worker profile. Recheck readiness, capabilities and ownership;
|
|
140
|
+
preserve existing permissions and measurement state. Return questions requiring my decision
|
|
141
|
+
through the coordinator.
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
```text
|
|
145
|
+
Use denisco-implementation-coordinator to resume <COORDINATOR.md> for <HANDOFF.md>.
|
|
146
|
+
Read <STATE.md> and the recorded authorization/limits. Reconcile the last attempt with actual
|
|
147
|
+
workers, ownership and evidence before dispatch. Continue only unfinished authorized work.
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Model invocation of this skill is disabled, so plain text does not load it: save each prompt after
|
|
151
|
+
the runtime's explicit invocation (`/denisco-implementation-coordinator` in Claude Code,
|
|
152
|
+
`$denisco-implementation-coordinator` in Codex). Planning that selects the coordinated path loads the
|
|
153
|
+
installed skill by its path after the user's yes to the planning question.
|
|
154
|
+
The first is prepared before execution is authorized; reading it is not its submission by the user.
|
|
155
|
+
A preparation-only resume finishes preparation and reaches the start question. Native Plan Mode
|
|
156
|
+
approval materializes only the current phase. A later explicit execution request may name these
|
|
157
|
+
documents without copying the template. No additional approval is needed between ordinary groups.
|
|
158
|
+
|
|
159
|
+
## Existing coordination notes
|
|
160
|
+
|
|
161
|
+
When upgrading from coordination embedded in STATE, first inspect actual workers and ownership.
|
|
162
|
+
The coordinator reads the old notes and HISTORY, imports their supported facts into its own
|
|
163
|
+
documents with source references, and preserves authorization, pending work and consumed recovery.
|
|
164
|
+
Missing facts remain unknown. An import is not a new launch or a fresh execution authorization.
|
|
165
|
+
|
|
166
|
+
The next authorized programmer, during its ordinary STATE update, archives replaced Coordination
|
|
167
|
+
text unchanged in STATE-HISTORY and replaces it with a short coordinator link and current assignment
|
|
168
|
+
reference. It preserves technical outcomes, pending answers and the normal implementation prompt.
|
|
169
|
+
Old HISTORY entries stay untouched. If no programmer can run yet, leave the legacy notes in place;
|
|
170
|
+
record migration pending in COORDINATOR. Do not launch a worker solely during preparation to migrate.
|
|
171
|
+
The coordinator uses the imported current record plus source evidence; stale notes never replenish
|
|
172
|
+
retries or override newer user restrictions. Conflicts are reconciled explicitly, not guessed away.
|
|
173
|
+
|
|
174
|
+
A COORDINATOR written before version 3.0.0 keeps its content: on the next bookkeeping write add the
|
|
175
|
+
missing sections and keep earlier packets where they are, with unknown values for unrecorded fields.
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# Runtime capabilities
|
|
2
|
+
|
|
3
|
+
Discover the tools available in the actual session. Installed CLI versions or a skill file alone
|
|
4
|
+
do not prove that this session can spawn workers. Keep the implementation contract provider-neutral;
|
|
5
|
+
record actual capability gaps in COORDINATOR. Preparation inspects available tool metadata without
|
|
6
|
+
launching a test worker; execution rechecks actual availability. Do not install adapters or enable telemetry implicitly.
|
|
7
|
+
|
|
8
|
+
## Codex
|
|
9
|
+
|
|
10
|
+
When the exposed spawn tool offers `fork_turns`, select `none` for each programmer. For another
|
|
11
|
+
tool interface use its documented fresh-context equivalent, not an assumed parameter. Supply
|
|
12
|
+
the task packet and actual installed skill paths explicitly. Verify the child has the required
|
|
13
|
+
filesystem, shell and applicable verification tools; do not assume it inherits every tool.
|
|
14
|
+
Use available message/wait/status/close operations. A completed response and a released worktree
|
|
15
|
+
claim answer different questions; check both. Keep the model inherited; request the profile's effort
|
|
16
|
+
only through a documented spawn setting, otherwise record it as inherited.
|
|
17
|
+
|
|
18
|
+
Codex multi-agent tools (`spawn_agent`, `send_message`, `followup_task`, `wait_agent`,
|
|
19
|
+
`list_agents`, `interrupt_agent`) expose no close operation, so closure is defined here. A returned
|
|
20
|
+
worker is closed, and the next one may launch, when its final answer has arrived, `list_agents` no
|
|
21
|
+
longer shows it running (otherwise `interrupt_agent` ends the turn first), its claim is released and
|
|
22
|
+
its delivery reports children drained. From then on it receives no `send_message` or
|
|
23
|
+
`followup_task`, which would reopen a closed context. Resuming a worker after an external
|
|
24
|
+
interruption uses `followup_task` before closure, as the message resume does elsewhere.
|
|
25
|
+
|
|
26
|
+
The tool instructions state the concurrent limit, for example "up to 4 agents can be active at once,
|
|
27
|
+
including you", and a closed worker may keep its slot. Before each launch count live agents with
|
|
28
|
+
`list_agents` and launch when the next assignment fits; after the first return record whether the
|
|
29
|
+
closed worker still appears. When no slot is left and work remains, record the capacity stop in
|
|
30
|
+
COORDINATOR and end with the resume prompt: a new conversation starts a new root thread, whose
|
|
31
|
+
slots the coordinator rechecks on entry. Only the user changes Codex's configured agent limits.
|
|
32
|
+
|
|
33
|
+
## Claude Code
|
|
34
|
+
|
|
35
|
+
Create a new subagent instance for every assignment with an isolated context, in the background,
|
|
36
|
+
passing the Agent tool's `effort` setting for the profile. A resumed agent retains history and is
|
|
37
|
+
not a reset. Close a returned worker by stopping its background task (TaskStop) and confirm the
|
|
38
|
+
stop. A process the worker started can outlive it, so services that stay up are recorded by port
|
|
39
|
+
and PID from the delivery. Supply the installed skill paths and require the worker to
|
|
40
|
+
load them, or use the runtime's supported skill-preloading configuration if already available.
|
|
41
|
+
Do not rely on skills invoked in the parent having loaded in the child. Check its editing tools,
|
|
42
|
+
permission mode and working directory. Honor any restrictions on subagents spawning further agents.
|
|
43
|
+
Subagents cannot start further agents, so a programmer's blind judge goes through the relay below.
|
|
44
|
+
A subagent's hand-back ends its run, but a message to it resumes the same agent: use that to return
|
|
45
|
+
judge observations to the paused worker and to continue a worker stopped by a usage limit (429) or
|
|
46
|
+
a network error. A long pause makes the resume re-read its whole context;
|
|
47
|
+
relay promptly. A hand-back delivers one report per agent: when a relay pause used it, the packet
|
|
48
|
+
tells the worker to send its final delivery as a message to the coordinator. General-purpose agents can run shells. For judges prefer an agent type whose tools
|
|
49
|
+
are limited to reading files, such as a project agent definition with `tools: Read`; adding one
|
|
50
|
+
changes project configuration and needs the user's yes. Without it, rely on the judge boundary.
|
|
51
|
+
|
|
52
|
+
Usage limits apply to the whole account, so a 429 normally stops the coordinator conversation
|
|
53
|
+
together with its worker. `SendMessage` reaches a subagent only from the conversation that
|
|
54
|
+
launched it: after `/clear` or in a new conversation the subagent is absent from `ListAgents` and
|
|
55
|
+
cannot be resumed.
|
|
56
|
+
|
|
57
|
+
A subagent that ends its turn while its own background commands run sends a completion
|
|
58
|
+
notification saying it is waiting on its own background work, with interim usage. It resumes when
|
|
59
|
+
those commands finish; only its hand-back is the delivery. The user can stop a subagent from the
|
|
60
|
+
interface, and the coordinator may receive no notification. Check its state with `ListAgents` and
|
|
61
|
+
its metadata file, `subagents/agent-<id>.meta.json` beside the conversation transcript, which
|
|
62
|
+
records `finished` and `stoppedByUser`; a killed background command's output file reads `[killed]`.
|
|
63
|
+
`TaskStop` stops a worker, so it is never a status probe.
|
|
64
|
+
|
|
65
|
+
## Verification and lifecycle limits
|
|
66
|
+
|
|
67
|
+
The programmer is the implementation owner, including ordinary visual captures and measurements.
|
|
68
|
+
If perceptual verification needs a fresh blind judge and the worker cannot create one, it can
|
|
69
|
+
send the coordinator the anonymized judge packet from denisco-visual-check. The coordinator may relay
|
|
70
|
+
that packet to an independent read-only judge and return its observations while the programmer
|
|
71
|
+
retains ownership. The worker pauses for the relay instead of ending its assignment; the
|
|
72
|
+
coordinator resumes that same worker with the observations. Only when resuming is unavailable does
|
|
73
|
+
the judgment become residual work for a new worker. This is verification delegation, not parallel
|
|
74
|
+
implementation. The judge gets no implementation transcript. Record actual native parentage
|
|
75
|
+
separately from operational roles.
|
|
76
|
+
If this capability or a slot is unavailable, retain the verification gap and request the existing
|
|
77
|
+
user-review/waiver options; do not claim an independent judgment occurred.
|
|
78
|
+
|
|
79
|
+
Before dispatch, check that the runtime can retire/release workers or has enough available
|
|
80
|
+
capacity for the next assignment. Do not hard-code a universal slot limit. A runtime without
|
|
81
|
+
usable status or communication may support bounded completion but not safe interruption: state
|
|
82
|
+
that limit and never start a replacement while the old worker may still be writing.
|
|
83
|
+
|
|
84
|
+
## Telemetry
|
|
85
|
+
|
|
86
|
+
Coordination requires no live context counter. When a trustworthy per-worker occupancy observation
|
|
87
|
+
is already exposed, it can inform conservative sizing; record its source and observation time.
|
|
88
|
+
Unknown occupancy stays unknown. Benchmark totals describe cumulative usage, not context occupancy.
|
|
89
|
+
No fixed token threshold, polling integration, cost estimate or model-routing table is installed.
|
|
90
|
+
|
|
91
|
+
The Worker usage row takes what the runtime reports when a worker finishes. In Claude Code the
|
|
92
|
+
completion notification carries `subagent_tokens`, `tool_uses` and `duration_ms`. After a message
|
|
93
|
+
resume the tokens cover the worker's whole life while tool uses and duration cover only the last
|
|
94
|
+
segment, an interim notification carries only the usage so far, and an interrupted or stopped run
|
|
95
|
+
may report no usage at all: take the row from the final notification and mark such rows partial. Lines come from
|
|
96
|
+
`git show --shortstat` of the attempt's commits. Where a runtime reports none of this, the row says unknown.
|
|
97
|
+
Record provider/model/effort requested and actually observed separately in the coordination history,
|
|
98
|
+
with the source of each observation. Inherited configuration is the request, not runtime proof.
|
|
99
|
+
Likewise record actual fresh-instance creation rather than claiming a clear command was executed.
|
|
100
|
+
|
|
101
|
+
Provider integration references, to consult when developing an adapter rather than on every task:
|
|
102
|
+
[Codex subagents](https://learn.chatgpt.com/docs/agent-configuration/subagents),
|
|
103
|
+
[Codex App Server](https://learn.chatgpt.com/docs/app-server),
|
|
104
|
+
[Claude subagents](https://code.claude.com/docs/en/sub-agents),
|
|
105
|
+
[Claude subagent status lines](https://code.claude.com/docs/en/statusline#subagent-status-lines).
|