@jesdi/skills 0.0.7 → 0.0.9

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.7",
3
+ "version": "0.0.9",
4
4
  "description": "jesdi's agent skills (content package consumed by @jesdi/skills-cli)",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -42,6 +42,46 @@ not in the default `repo` scope).
42
42
  `<owner>`, `<repo>`, `<projectNumber>` below all come from that
43
43
  `.backlog/project-meta.json`.
44
44
 
45
+ ## Label taxonomy (capture infers, triage confirms)
46
+
47
+ Issues carry conventional repo labels alongside `inbox`. They are orthogonal to
48
+ the board's `Area` field — never derive one from the other. Apply every label
49
+ that clearly fits, typically 1–3 total; when unsure, apply fewer. Use **only**
50
+ these labels (`setup` provisions them all) — never invent new ones.
51
+
52
+ **Type — at most one:**
53
+
54
+ | Label | Apply when |
55
+ |-------|-----------|
56
+ | `bug` | Something is broken or behaves incorrectly |
57
+ | `enhancement` | New feature or improvement to existing behavior |
58
+ | `documentation` | Docs, READMEs, comments, guides |
59
+ | `question` | Open question or decision needed, not yet actionable work |
60
+
61
+ **Area — pick 0–2:**
62
+
63
+ | Label | Apply when |
64
+ |-------|-----------|
65
+ | `frontend` | UI, components, styling, client/browser behavior |
66
+ | `backend` | Server logic, APIs, data models, services |
67
+ | `infra` | Deployment, hosting, environments, tooling, build |
68
+ | `ci` | CI/CD pipelines, workflows, checks |
69
+ | `security` | Vulnerabilities, auth, permissions, hardening |
70
+ | `performance` | Speed, memory, efficiency, scalability |
71
+ | `testing` | Test coverage, test infrastructure, flaky tests |
72
+ | `dependencies` | Upgrading or managing third-party dependencies |
73
+
74
+ **Pipeline — at most one, orthogonal to Type and Area:**
75
+
76
+ Whether an issue is ready for an unattended agent to pick up. Leave both off
77
+ when it is genuinely unclear — an unlabelled issue is simply not routed, which
78
+ is the safe default. Dispatchers filter on `auto`; nothing else reads these.
79
+
80
+ | Label | Apply when |
81
+ |-------|-----------|
82
+ | `auto` | Trivial, or close enough to previously automated work — suitable for the unattended agents pipeline |
83
+ | `human-required` | Substantial fog of war remains; needs heavy human interaction before an agent can take it |
84
+
45
85
  ## `setup` — create the board once (idempotent)
46
86
 
47
87
  Run when `.backlog/project-meta.json` is absent or the board is being
@@ -52,7 +92,9 @@ dir.
52
92
  1. Ensure the `project` scope: `gh auth status`; if Projects calls 403, run
53
93
  `gh auth refresh -s project`.
54
94
  2. Follow `references/graphql.md` → **Setup**: create the Project, link the repo,
55
- add the six fields, create the `inbox` label. On a brand-new board the `Area`
95
+ add the six fields, create the `inbox` label plus the 14 taxonomy labels
96
+ (idempotent — `--force` reconciles color/description on re-runs). On a
97
+ brand-new board the `Area`
56
98
  single-select is created with the generic default options
57
99
  `feature,bug,infra,docs,research`. If any step reports "already exists", treat
58
100
  it as done and continue. Projects that want different Areas edit the option set
@@ -126,14 +168,21 @@ Reuse the **dedup discipline** from the `file-bug-issue` skill, but take the
126
168
  2. Dedup: `gh issue list --repo <repo> --state open --search "<distinctive terms>" --json number,title,url`.
127
169
  If a genuine duplicate exists, add the new angle as a comment instead of a new
128
170
  issue and report which. Different-but-related → create new and cross-link `#N`.
129
- 3. Otherwise create it (see `references/graphql.md` → Capture): `--label inbox`,
130
- body = the idea as-is (one loose sentence is fine; no required structure).
131
- 4. Report the new issue URL. If mid-task, treat as a side-quest and return.
171
+ 3. Otherwise infer labels from the idea text per the **Label taxonomy** above,
172
+ then create it (see `references/graphql.md` → Capture): `--label inbox` plus
173
+ one `--label` per inferred label, body = the idea as-is (one loose sentence
174
+ is fine; no required structure).
175
+ 4. Report the new issue URL and the labels applied. If mid-task, treat as a
176
+ side-quest and return.
132
177
 
133
178
  ## `triage` — turn inbox issues into scored graph nodes
134
179
 
135
- 1. List the inbox: `gh issue list --repo <repo> --state open --label inbox --json number,title,url,body`.
136
- 2. For each, present title + body and ask whether to promote (skip = leave in inbox).
180
+ 1. List the inbox: `gh issue list --repo <repo> --state open --label inbox --json number,title,url,body,labels`.
181
+ 2. For each, present title + body + current labels and ask whether to promote
182
+ (skip = leave in inbox). Offer label corrections per the **Label taxonomy**
183
+ above; apply via `gh issue edit N --add-label … --remove-label …`
184
+ (graphql.md → Triage). Labels stay independent of the board `Area` gathered
185
+ next.
137
186
  3. For a promoted issue, gather `Impact` (1–5), `Effort` (1–5), `Area` (**pick one
138
187
  from the options present in `.backlog/project-meta.json`** → `fields.Area.options`),
139
188
  and optional blockers.
@@ -31,9 +31,25 @@ gh project field-create <projectNumber> --owner <owner> --name "Area" \
31
31
  --data-type SINGLE_SELECT \
32
32
  --single-select-options "feature,bug,infra,docs,research"
33
33
 
34
- # 4. Create the inbox label on the repo
35
- gh label create inbox --repo <repo> \
36
- --description "Un-triaged capture" --color BFD4F2 || true
34
+ # 4. Create the labels on the repo (idempotent: --force updates color/description)
35
+ gh label create inbox --repo <repo> --description "Un-triaged capture" --color BFD4F2 --force
36
+ # Type labels (at most one per issue)
37
+ gh label create bug --repo <repo> --description "Something is broken or behaves incorrectly" --color d73a4a --force
38
+ gh label create enhancement --repo <repo> --description "New feature or improvement to existing behavior" --color a2eeef --force
39
+ gh label create documentation --repo <repo> --description "Docs, READMEs, comments, guides" --color 0075ca --force
40
+ gh label create question --repo <repo> --description "Open question or decision needed, not yet actionable work" --color d876e3 --force
41
+ # Area labels (0-2 per issue)
42
+ gh label create frontend --repo <repo> --description "UI, components, styling, client/browser behavior" --color fbca04 --force
43
+ gh label create backend --repo <repo> --description "Server logic, APIs, data models, services" --color 1d76db --force
44
+ gh label create infra --repo <repo> --description "Deployment, hosting, environments, tooling, build" --color c2e0c6 --force
45
+ gh label create ci --repo <repo> --description "CI/CD pipelines, workflows, checks" --color bfdadc --force
46
+ gh label create security --repo <repo> --description "Vulnerabilities, auth, permissions, hardening" --color ee0701 --force
47
+ gh label create performance --repo <repo> --description "Speed, memory, efficiency, scalability" --color f9d0c4 --force
48
+ gh label create testing --repo <repo> --description "Test coverage, test infrastructure, flaky tests" --color 0e8a16 --force
49
+ gh label create dependencies --repo <repo> --description "Upgrading or managing third-party dependencies" --color 0366d6 --force
50
+ # Pipeline labels (at most one per issue; read by dispatchers)
51
+ gh label create auto --repo <repo> --description "Suitable for the unattended agents pipeline" --color 5319E7 --force
52
+ gh label create human-required --repo <repo> --description "Needs heavy human interaction before automation" --color B60205 --force
37
53
 
38
54
  # 5. Discover IDs to build .backlog/project-meta.json
39
55
  gh project view <projectNumber> --owner <owner> --format json # -> id (projectId)
@@ -49,7 +65,8 @@ IDs into `.backlog/project-meta.json`.
49
65
 
50
66
  ```bash
51
67
  gh issue create --repo <repo> \
52
- --title "<concise idea title>" --label inbox \
68
+ --title "<concise idea title>" \
69
+ --label inbox --label "<inferred>" [--label "<inferred>" ...] \
53
70
  --body "<one loose sentence is fine>"
54
71
  ```
55
72
 
@@ -81,6 +98,8 @@ gh issue edit <number> --repo <repo> --body "<body>\n\nBlocked by: #<a>, #<b>"
81
98
 
82
99
  # Drop the inbox label
83
100
  gh issue edit <number> --repo <repo> --remove-label inbox
101
+ # Correct taxonomy labels if the user adjusts them during review
102
+ gh issue edit <number> --repo <repo> --add-label "<label>,<label>" --remove-label "<label>"
84
103
  ```
85
104
 
86
105
  ## Sub-issues (native parent/child) — GraphQL, no field IDs needed
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "generatedAt": "2026-07-24T16:48:47.031Z",
3
+ "generatedAt": "2026-07-31T14:48:08.872Z",
4
4
  "skills": [
5
5
  {
6
6
  "name": "backlog",
7
- "version": "0.1.4",
8
- "hash": "sha256-c5c2ff8482d24eb782b0d5799b1e490733340f604196f42e8051d731bb00dd09",
7
+ "version": "0.1.6",
8
+ "hash": "sha256-89423260dd0d35ceb16f536c1c3bd0e5fc43a30f36861e301a7a807351645582",
9
9
  "description": "Manage a GitHub-Issues-backed backlog and a Projects-v2 work graph via five verbs. Use when the user wants to CAPTURE an idea/research thread (\"add to backlog\", \"capture this\", \"note this idea\", \"log a task\"), TRIAGE the inbox (\"triage the backlog\", \"score the inbox\"), see what to work on NEXT (\"what's next\", \"what should I work on\", \"ranked backlog\", \"next actionable task\"), LAND a finished item (\"mark done\", \"close out #N\"), or SETUP the board the first time. Ranks open issues by impact÷effort, respecting `Blocked by:` edges, so only actionable work surfaces."
10
10
  },
11
11
  {