orchestrix-skills 0.1.0 → 0.2.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/package.json +1 -1
- package/skills/orchestrate/SKILL.md +32 -6
package/package.json
CHANGED
|
@@ -4,6 +4,7 @@ description: Use when a goal must be delivered end-to-end by composing skills, w
|
|
|
4
4
|
license: MIT
|
|
5
5
|
allowed-tools: [Read, Write, Edit, Bash, Grep, Glob, Task]
|
|
6
6
|
metadata:
|
|
7
|
+
version: 2
|
|
7
8
|
contract:
|
|
8
9
|
inputs: [intent, constraints?]
|
|
9
10
|
reads: [skill-registry, taste/*]
|
|
@@ -38,9 +39,13 @@ no step above intent.
|
|
|
38
39
|
3. **Wire (emergent, not hardcoded).** Build the path by matching one skill's
|
|
39
40
|
`outputs` to the next skill's `inputs`. Skills do not know each other; only
|
|
40
41
|
you do. Do not assume a fixed pipeline — wire what this intent needs.
|
|
41
|
-
4. **Dispatch
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
4. **Dispatch.** Hand the skill exactly the `inputs` it declares, as files. Run
|
|
43
|
+
it as a fresh subagent for isolation. Choose the cheapest model that can do
|
|
44
|
+
the step. **Dispatch independent steps in PARALLEL** (whose `inputs` don't
|
|
45
|
+
depend on each other) — as concurrent FOREGROUND subagents awaited together in
|
|
46
|
+
the same turn, for speed. Keep dependent steps sequential. NEVER fire-and-forget
|
|
47
|
+
a background subagent and end the turn waiting to be woken — run foreground and
|
|
48
|
+
await; there is no reliable async wake.
|
|
44
49
|
5. **Verify (gate).** Run the skill's `verify`. If it fails, re-dispatch the
|
|
45
50
|
**same** skill with the failure as feedback (see Rework). If it passes,
|
|
46
51
|
continue.
|
|
@@ -73,13 +78,32 @@ When the human corrects something at final acceptance ("not on-brand", "wrong
|
|
|
73
78
|
tone"), write the correction back into the relevant `taste/*` knowledge base, so
|
|
74
79
|
the next run reads the improved taste. The run teaches the organization.
|
|
75
80
|
|
|
81
|
+
## The ledger (`.orchestrate/ledger.jsonl`)
|
|
82
|
+
|
|
83
|
+
The ledger is the run's durable state — for YOU (recover after compaction or an
|
|
84
|
+
interrupted session: trust it and `git log`, not memory) and for MACHINES (the
|
|
85
|
+
platform renders it as live progress). It is append-only JSONL: one JSON event
|
|
86
|
+
per line, appended with `Bash` (`echo '<json>' >> .orchestrate/ledger.jsonl`).
|
|
87
|
+
Never rewrite or delete lines. Timestamps: `date -u +%FT%TZ`.
|
|
88
|
+
|
|
89
|
+
Events and when to write them:
|
|
90
|
+
|
|
91
|
+
| Event | When | Shape |
|
|
92
|
+
| ----- | ---- | ----- |
|
|
93
|
+
| `run_start` | right after binding intent | `{"e":"run_start","run":"r-<yyyymmdd>-<slug>","intent":"...","ts":"..."}` |
|
|
94
|
+
| `plan` | after wiring the graph, and EVERY time the graph changes | `{"e":"plan","run":"...","steps":[{"n":1,"skill":"research","title":"..."}, …]}` — full current plan; latest `plan` line wins; steps may be added, never removed |
|
|
95
|
+
| `step` | immediately BEFORE each dispatch, and again after its verify | `{"e":"step","run":"...","n":3,"skill":"implement","status":"dispatched\|done\|failed","attempt":1,"evidence":"<file or one-line result>","ts":"..."}` — rework = same `n`, next `attempt` |
|
|
96
|
+
| `gate` | when stopping at a human gate | `{"e":"gate","run":"...","kind":"inline_accept","question":"...","ts":"..."}` |
|
|
97
|
+
| `run_end` | at delivery or abandonment | `{"e":"run_end","run":"...","result":"delivered\|paused\|abandoned","ts":"..."}` |
|
|
98
|
+
|
|
99
|
+
A step recorded `done` is done — do not re-dispatch it. `evidence` on a `done`
|
|
100
|
+
step is required (the verify output file or a one-line result); a `done` with no
|
|
101
|
+
evidence is a false claim.
|
|
102
|
+
|
|
76
103
|
## Context discipline (stay lean)
|
|
77
104
|
|
|
78
105
|
- **Files, not paste.** Move artifacts between steps as files. Never paste a
|
|
79
106
|
step's full output into your context — it would be re-read every later turn.
|
|
80
|
-
- **Ledger.** Append each finished step to a progress ledger file
|
|
81
|
-
(`.orchestrate/ledger.md`). After a compaction, trust the ledger and `git
|
|
82
|
-
log`, not memory. A step recorded done is done — do not re-dispatch it.
|
|
83
107
|
- **Cheapest model per step.** Mechanical step → cheap model. Judgment step →
|
|
84
108
|
capable model. State the model explicitly on every dispatch.
|
|
85
109
|
- **Keep your own context small.** You coordinate; the leaves do the heavy work.
|
|
@@ -91,4 +115,6 @@ log`, not memory. A step recorded done is done — do not re-dispatch it.
|
|
|
91
115
|
- Hardcoding a fixed skill order instead of wiring outputs→inputs
|
|
92
116
|
- Pasting a step's full output into your context instead of handing a file
|
|
93
117
|
- Re-dispatching a step the ledger already marks done
|
|
118
|
+
- Dispatching a step without first writing its `dispatched` ledger line
|
|
119
|
+
- Ending a run without a `run_end` ledger line
|
|
94
120
|
- Marking the run complete without every step's `verify` evidence
|