@wairon/cli 5.1.1-dev.46 → 5.1.1-dev.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -0
- package/dist/cli/index.js +24 -11
- package/dist/cli/index.js.map +1 -1
- package/dist/index.js +26 -11
- package/dist/index.js.map +1 -1
- package/dist/templates/skills/sdd-delegate.md +32 -0
- package/dist/templates/skills/sdd-implement.md +57 -0
- package/package.json +1 -1
|
@@ -44,3 +44,35 @@ You are the **Delegation Orchestrator**. Your job is to hand scoped work to a fo
|
|
|
44
44
|
- Read the report, verify the write fence was respected, and continue orchestrating — or delegate the next scoped task.
|
|
45
45
|
|
|
46
46
|
This flow is transport-agnostic: it works identically over local stdio and the hosted data plane — the tools and `wairon-agent://` resources are the same surface.
|
|
47
|
+
|
|
48
|
+
## What goes in the brief — and what must not
|
|
49
|
+
|
|
50
|
+
A brief that re-types the working conventions is a brief that will one day omit
|
|
51
|
+
one, and the omission is invisible: nobody reads a prompt looking for what is not
|
|
52
|
+
in it. The conventions that hold for **any** delegated change live in
|
|
53
|
+
`sdd-implement` under **Working conventions** — never hand-edit specs, read every
|
|
54
|
+
write back, the lock is the human's, measure before repairing, restore a revert
|
|
55
|
+
proof from your own snapshot, refuse with reasoning, report what you did not do.
|
|
56
|
+
Point the subagent at that skill and spend the brief on what only you know:
|
|
57
|
+
|
|
58
|
+
* **The task and the fence** — `brief.ownedPaths`, `brief.readPaths`, the concrete
|
|
59
|
+
change, and the branch/commit discipline if the project has one.
|
|
60
|
+
* **What this project does differently** — its gate commands and their current
|
|
61
|
+
baselines, its tooling or line-ending quirks, the paths that are somebody else's
|
|
62
|
+
work in flight. Name the project's own contributor doc rather than paraphrasing
|
|
63
|
+
it: a paraphrase drifts, and the subagent cannot tell which copy is current.
|
|
64
|
+
* **The premise you are asking them to act on**, stated *as* a premise, so it can
|
|
65
|
+
be contradicted.
|
|
66
|
+
|
|
67
|
+
## Receiving the report
|
|
68
|
+
|
|
69
|
+
* **A measurement or a refusal is a delivery, not a failure.** "This lights up 362
|
|
70
|
+
findings" or "the code does not do what the brief assumes, here is the proof" is
|
|
71
|
+
the one thing you could not have learned without spending that context. Decide
|
|
72
|
+
on it. Re-delegating "just fix it" throws the measurement away and buys the same
|
|
73
|
+
question back later at full price.
|
|
74
|
+
* **Read the part of the report that says what was NOT done.** Skipped gates and
|
|
75
|
+
untested paths are where the next wave's surprise lives, and a report that lists
|
|
76
|
+
only successes has not been read until you have looked for that section.
|
|
77
|
+
* **Verify the write fence and the gate numbers yourself** before you build the
|
|
78
|
+
next delegation on top of this one.
|
|
@@ -101,6 +101,63 @@ You are the **Spec-to-Code Compiler**. Your job is to generate concrete source c
|
|
|
101
101
|
coherent, unit tests prove the component honors its CONTRACT shape, and only the
|
|
102
102
|
integration sim proves the wired components RUN together.
|
|
103
103
|
|
|
104
|
+
## 🧭 Working conventions (what each one cost)
|
|
105
|
+
|
|
106
|
+
These are not house style. Each one is here because a delegated change went wrong
|
|
107
|
+
without it, and a convention whose reason you can see is one you can still apply
|
|
108
|
+
to the case nobody wrote down.
|
|
109
|
+
|
|
110
|
+
1. **Specs change through the validated write path — never a text edit.**
|
|
111
|
+
The `sdd_*` tools (or, in-process, the library's own write function) are what
|
|
112
|
+
renumber narrative steps, relocate jump targets, and refuse a delta the schema
|
|
113
|
+
does not accept. Hand-editing a file under `.wai/` skips all three, and the
|
|
114
|
+
damage surfaces later in somebody else's validate run. If a running server
|
|
115
|
+
cannot express a field your change introduces, that is a reason to restart it
|
|
116
|
+
or call the library directly — never a licence to open the editor.
|
|
117
|
+
2. **Read every write back from disk before you build on it.**
|
|
118
|
+
A write's answer is what the *server* believes. `sdd_update_spec` returns a
|
|
119
|
+
structured change report naming what actually moved — read it, because
|
|
120
|
+
"nothing changed" and "everything changed" are different answers that used to
|
|
121
|
+
be the same sentence — and it sets `staleServer: true` (with a ⚠ STALE SERVER
|
|
122
|
+
banner) when the build on disk moved after the server started. That flag
|
|
123
|
+
exists because a stale process once silently replaced an entire `params` list
|
|
124
|
+
while reporting success. Restart the session when you see it, and open the
|
|
125
|
+
file either way: the report is evidence, the file is truth.
|
|
126
|
+
3. **The lock is the human's signature, not a step in your task.**
|
|
127
|
+
Never run `wairon lock`. Your work ends at "the tree validates" — say so and
|
|
128
|
+
hand it over (`sdd-architect` carries the handoff wording). Locking on the
|
|
129
|
+
human's behalf forges the one record that says a person looked.
|
|
130
|
+
4. **Measure before you repair.**
|
|
131
|
+
When a change lights up a large number of findings, report the count and stop.
|
|
132
|
+
Whether to fix them, carry them, or scope them out is the maintainer's call,
|
|
133
|
+
and it is cheap to ask before the work and expensive after. Separate *your*
|
|
134
|
+
breakage from debt that was already there before you report either number: a
|
|
135
|
+
wave that mixed the two spent its effort across 362 findings and could only
|
|
136
|
+
honestly claim 224 of them.
|
|
137
|
+
5. **Prove a behaviour by revert — and restore from your own snapshot.**
|
|
138
|
+
Copy the file aside, overwrite it, run the thing, then restore *from the copy*.
|
|
139
|
+
Never `git checkout --` to undo the experiment: that restores the *committed*
|
|
140
|
+
version, so every uncommitted change in that file — yours and anyone else's —
|
|
141
|
+
dies with the proof. It has already cost about 120 lines of work that nobody
|
|
142
|
+
could get back.
|
|
143
|
+
6. **Delete the temporary harness before you commit, and say that you did.**
|
|
144
|
+
A scratch script left behind reads as a deliverable to the next person and
|
|
145
|
+
quietly becomes a file somebody now maintains. (An integration sim is the
|
|
146
|
+
opposite case — it is *meant* to stay, committed and declared as `simPath`.)
|
|
147
|
+
7. **A refusal with reasoning is a result.**
|
|
148
|
+
If the code contradicts the premise you were handed, say so and show the
|
|
149
|
+
measurement. Building what was asked on a premise you have already disproved
|
|
150
|
+
spends the work twice and buries the finding.
|
|
151
|
+
8. **Never declare what the code does not do.**
|
|
152
|
+
A `lint.allow`, a `simPath`, a coverage anchor, or a `status: complete` that
|
|
153
|
+
silences a finding without the behaviour behind it is worse than the finding:
|
|
154
|
+
it moves a known defect out of a list somebody reads and into a claim somebody
|
|
155
|
+
trusts.
|
|
156
|
+
9. **Report what you did not do as carefully as what you did.**
|
|
157
|
+
The gate you skipped, the path you left untested, the thing you could not
|
|
158
|
+
reproduce — that is what the next person needs. A report listing only
|
|
159
|
+
successes gets read as complete.
|
|
160
|
+
|
|
104
161
|
## 📜 Core Architecture & Coding Standards
|
|
105
162
|
All implementation work must strictly adhere to these rules:
|
|
106
163
|
1. **Semantic Naming & Stereotypes**:
|