@enrichlayer/el-linear 1.38.2 → 1.39.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.
|
@@ -371,7 +371,7 @@ Complete ALL items before creating any issue:
|
|
|
371
371
|
- [ ] **Assignee** — ask user if unclear (`el-linear users list --active`).
|
|
372
372
|
- [ ] **Project** — always ask user, never guess (`el-linear projects list`).
|
|
373
373
|
- [ ] **Labels** — exactly 1 type label + 1–2 domain labels (see Label Taxonomy below).
|
|
374
|
-
- [ ] **Title** — action verb matching the type label (see Title Verb Convention), sentence case, specific scope.
|
|
374
|
+
- [ ] **Title** — action verb matching the type label (see Title Verb Convention), sentence case, specific scope, **plain-language and jargon-free** (see Title Readability).
|
|
375
375
|
- [ ] **Description** — 2–4 sentences with context and intent, formatted with **bold** and `inline code`.
|
|
376
376
|
- [ ] **"Why we need this"** — genuine motivation, not a restatement of the title.
|
|
377
377
|
|
|
@@ -497,6 +497,27 @@ Title must start with a verb that matches the type label:
|
|
|
497
497
|
- `spike` → Research, Investigate, Explore, Evaluate, Audit, Benchmark
|
|
498
498
|
- `refactor` → Refactor, Restructure, Extract, Decouple, Simplify
|
|
499
499
|
|
|
500
|
+
### Title Readability — plain language, jargon in the body
|
|
501
|
+
|
|
502
|
+
**The title says what problem is being solved, in words a non-author can read.** The title is the shared surface — a teammate scanning the board, a manager triaging priority, a future picker deciding what to pick up. If it only parses for the person who wrote it that week, that whole audience is locked out. This applies to **MR/PR titles too** — they front the same board.
|
|
503
|
+
|
|
504
|
+
**Keep the mechanism detail — function names, env-var constants, symbol soup — in the description, not the title.** Moving it into the body doesn't lose precision; it puts precision where the reader who opens the issue actually wants it. The title carries the *problem*; the body carries the *how*.
|
|
505
|
+
|
|
506
|
+
- **Lead with the problem or outcome**, not the internal symbol at the center of it.
|
|
507
|
+
- **Move code identifiers, env-var constants, and file/function names into the body**, under a `## …` heading where they read as helpful context.
|
|
508
|
+
- **Proper nouns that ARE the clearest name stay.** The name of a tool, service, or protocol a teammate would recognize (a CLI name, `Vault`, `CI`, `OAuth`) is not jargon — don't paraphrase it into vagueness. The test is "would a teammate recognize this?", not "does it contain a lowercase token?".
|
|
509
|
+
- **Don't overcorrect into mush.** "Fix the thing that was broken" is worse than a jargon title — specificity still matters, just express it in problem terms.
|
|
510
|
+
|
|
511
|
+
Before → after:
|
|
512
|
+
|
|
513
|
+
| ❌ Jargon title | ✅ Plain-language title |
|
|
514
|
+
|---|---|
|
|
515
|
+
| `parseTokenBucket drops refill when lastRefillTs is unset` | Fix rate limiter losing its refill allowance after an idle period |
|
|
516
|
+
| `AUTH_SESSION_TTL mismatch logs out users early in refreshSession` | Fix users getting logged out before their session length expires |
|
|
517
|
+
| `Extract validateEntry into shared pkg (3 hand-rolled copies)` | Extract the duplicated entry validator into a shared package |
|
|
518
|
+
|
|
519
|
+
The mechanism (`parseTokenBucket`, `AUTH_SESSION_TTL`, `refreshSession`, the three copies) still gets stated — in the **description**, where it reads as context instead of a barrier.
|
|
520
|
+
|
|
500
521
|
### Rules
|
|
501
522
|
|
|
502
523
|
- **Create missing labels liberally** — `el-linear labels create "my-label" --team ENG`.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@enrichlayer/el-linear",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.39.0",
|
|
4
4
|
"description": "A pragmatic CLI for Linear.app — deterministic team/label/member resolution, structured issue validation, configurable term enforcement, and a GraphQL escape hatch.",
|
|
5
5
|
"main": "dist/main.js",
|
|
6
6
|
"types": "dist/main.d.ts",
|