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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "orchestrix-skills",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "Capability-first AI development skill graph — Anthropic-native skills that run in any agent runtime.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -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 one step.** Hand the skill exactly the `inputs` it declares, as
42
- files. Run it as a fresh subagent for isolation. Choose the cheapest model
43
- that can do the step.
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