@jesdi/skills 0.0.21 → 0.0.22

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": "@jesdi/skills",
3
- "version": "0.0.21",
3
+ "version": "0.0.22",
4
4
  "description": "jesdi's agent skills (content package consumed by @jesdi/skills-cli)",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -31,7 +31,7 @@ Run ticket subagents in the background where possible for **maximum concurrency*
31
31
 
32
32
  **Every dispatch prompt says: never `git stash`, reset or check out other branches; worktrees share one stash and one ref store.**
33
33
 
34
- **Name the model on every dispatch.** Omitted, it inherits yours. Exploration, test-writer, reviewer: mid tier (reviewer higher for risky diffs). Implementer: mid tier; cheapest when the ticket carries the complete code; most capable for design judgment or broad codebase work. Merger: cheapest. Escalations: one tier above the agent that got stuck. Final reviewer: most capable.
34
+ **Name the model on every dispatch.** Omitted, it inherits yours. Exploration, test-writer, reviewer: mid tier (reviewer higher for risky diffs). Implementer: mid tier; cheapest for a small, fully specified ticket; most capable for design judgment or broad codebase work. Merger: cheapest. Escalations: one tier above the agent that got stuck. Final reviewer: most capable.
35
35
 
36
36
  **Rule, don't stall.** Keep a **ledger** file in the notes directory: every decision as `Ruling: <what> — <why> — <cost if wrong>`, and each ticket's state, so you can resume after compaction. Don't check in between tickets. Stop and ask only for: an irreversible or destructive operation, a security-sensitive action, a side effect outside the worktrees (a push to a shared branch, a publish), or a spec so broken that every path forward is a guess.
37
37
 
@@ -54,6 +54,9 @@ stage 1. Re-read `proposal.md` and `spec.md` first; the human may have edited th
54
54
  heading when the repo's template lacks it.
55
55
  - **Seams**: the endpoint, function, or command the tests drive through, marked existing or
56
56
  new. Prefer one high seam.
57
+ - No implementation code anywhere in the spec folder. `implement-spec`'s test-writer reads it
58
+ and must not know the solution. A decision's shape (a type, a schema, a state machine, a
59
+ seam's signature) may appear; the function bodies that make the tasks pass may not.
57
60
  3. Write `specs/<slug>/tasks.md`: vertical slices, each small enough for one commit and one green
58
61
  check command. Tests come first in each slice.
59
62
  - Every task has its `_Goal:_` line, its **Seam** (one of the seams from `design.md`, precise
@@ -10,7 +10,8 @@ Changes: tickets always go to `.agent/tickets/<NN>-<slug>.md` (no tracker path);
10
10
  numbering is contiguous from 01 in dependency order; acceptance criteria must state
11
11
  observable behavior; every ticket names its **Seam** (the public interface its
12
12
  acceptance tests hit) and what it **Touches** (files and functions, for
13
- scheduling); the approval quiz is skipped when unattended; model invocation is
13
+ scheduling); trivial slices fold into a neighbour; tickets never carry the
14
+ implementation; the approval quiz is skipped when unattended; model invocation is
14
15
  allowed.
15
16
  -->
16
17
 
@@ -40,6 +41,7 @@ Break the work into **tracer bullet** tickets.
40
41
  - A completed slice is demoable or verifiable on its own
41
42
  - Each slice is sized to fit in a single fresh context window
42
43
  - Any prefactoring should be done first
44
+ - No trivial tickets: when a slice's whole change is a small guard or fix (a few lines) and no other ticket is blocked by it, fold its acceptance criteria into the neighbouring ticket that touches the same behaviour. Every ticket costs a test-writer, implementer, reviewer and merger; a two-line guard doesn't earn four agents
43
45
 
44
46
  </vertical-slice-rules>
45
47
 
@@ -112,4 +114,6 @@ The **Touches** line is a best guess, for scheduling: `implement-spec` never run
112
114
 
113
115
  </touches-rule>
114
116
 
115
- Outside the **Touches** line, avoid specific file paths or code snippets: they go stale fast. Exception: if a prototype produced a snippet that encodes a decision more precisely than prose can (state machine, reducer, schema, type shape), inline it and note briefly that it came from a prototype. Trim to the decision-rich parts, not a working demo, just the important bits.
117
+ Never write the implementation into a ticket. `implement-spec`'s test-writer reads the ticket and must not know the solution, or its acceptance tests stop being independent of the code they judge. Describe behaviour, not the fix.
118
+
119
+ Outside the **Touches** line, avoid specific file paths or code snippets: they go stale fast. Exception: if a prototype produced a snippet that encodes a decision more precisely than prose can (state machine, reducer, schema, type shape), inline it and note briefly that it came from a prototype. Trim to the decision-rich parts, the shape of the decision, never the code that implements the ticket.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "generatedAt": "2026-09-24T19:16:41.414Z",
3
+ "generatedAt": "2026-09-24T19:30:05.664Z",
4
4
  "skills": [
5
5
  {
6
6
  "name": "backlog",
@@ -46,8 +46,8 @@
46
46
  },
47
47
  {
48
48
  "name": "implement-spec",
49
- "version": "0.1.2",
50
- "hash": "sha256-ae8c88981b359c9b19ba285bacc38264ba11dca163be7b1fde4ff73ac278465b",
49
+ "version": "0.1.3",
50
+ "hash": "sha256-35fb6ffac0407ec80098b7aca94d3949912b80e6f10908a81401e3f40e45ee9e",
51
51
  "description": "Implement a specification in code."
52
52
  },
53
53
  {
@@ -76,8 +76,8 @@
76
76
  },
77
77
  {
78
78
  "name": "to-openspec",
79
- "version": "0.1.1",
80
- "hash": "sha256-223f00ac309e5365e77708e8f3fc22c36a02e52f4c071af54ea25ea4d9461965",
79
+ "version": "0.1.2",
80
+ "hash": "sha256-80d168bfb69993b2977f6b6bcec9657e020f79e7cd61347a0f514755014e4c38",
81
81
  "description": "Turn settled discovery notes and a sketched data model into a spec folder in openspec shape (proposal, spec, design, tasks) under specs/<slug>/. Runs in two stages with a human review between them. No interview, just synthesis of decisions already made. Trigger on \"write the spec\", \"to-openspec\", or \"/to-openspec <slug> [stage 2]\"."
82
82
  },
83
83
  {
@@ -88,8 +88,8 @@
88
88
  },
89
89
  {
90
90
  "name": "to-tickets",
91
- "version": "0.1.2",
92
- "hash": "sha256-13e639c6412c6d875d285e452fd0f8c64597c4653cedbbe0e7aa0c19cd717ec1",
91
+ "version": "0.1.3",
92
+ "hash": "sha256-50387c0abfab110d26b156521d99320e848aa942c319379b82d80fde59722903",
93
93
  "description": "Break a spec, plan, or the current conversation into numbered tracer-bullet ticket files under .agent/tickets/, each declaring its blocking edges and acceptance criteria phrased as observable behavior. Use after a spec is approved and before implementation starts."
94
94
  },
95
95
  {