@codyswann/lisa 2.10.1 → 2.11.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.
Files changed (117) hide show
  1. package/package.json +1 -1
  2. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  3. package/plugins/lisa/agents/confluence-prd-intake.md +1 -1
  4. package/plugins/lisa/agents/github-prd-intake.md +2 -2
  5. package/plugins/lisa/agents/linear-agent.md +128 -0
  6. package/plugins/lisa/agents/linear-build-intake.md +62 -0
  7. package/plugins/lisa/agents/linear-prd-intake.md +2 -2
  8. package/plugins/lisa/agents/notion-prd-intake.md +1 -1
  9. package/plugins/lisa/commands/plan.md +1 -1
  10. package/plugins/lisa/rules/config-resolution.md +187 -0
  11. package/plugins/lisa/rules/intent-routing.md +13 -13
  12. package/plugins/lisa/skills/confluence-prd-intake/SKILL.md +9 -4
  13. package/plugins/lisa/skills/confluence-to-tracker/SKILL.md +23 -16
  14. package/plugins/lisa/skills/github-create/SKILL.md +4 -4
  15. package/plugins/lisa/skills/github-prd-intake/SKILL.md +8 -3
  16. package/plugins/lisa/skills/github-to-tracker/SKILL.md +22 -13
  17. package/plugins/lisa/skills/github-write-issue/SKILL.md +2 -2
  18. package/plugins/lisa/skills/implement/SKILL.md +1 -1
  19. package/plugins/lisa/skills/intake/SKILL.md +3 -3
  20. package/plugins/lisa/skills/jira-build-intake/SKILL.md +6 -3
  21. package/plugins/lisa/skills/jira-create/SKILL.md +4 -4
  22. package/plugins/lisa/skills/jira-validate-ticket/SKILL.md +1 -1
  23. package/plugins/lisa/skills/jira-write-ticket/SKILL.md +3 -3
  24. package/plugins/lisa/skills/linear-add-journey/SKILL.md +104 -0
  25. package/plugins/lisa/skills/linear-build-intake/SKILL.md +160 -0
  26. package/plugins/lisa/skills/linear-create/SKILL.md +146 -0
  27. package/plugins/lisa/skills/linear-evidence/SKILL.md +86 -0
  28. package/plugins/lisa/skills/linear-journey/SKILL.md +134 -0
  29. package/plugins/lisa/skills/linear-prd-intake/SKILL.md +11 -6
  30. package/plugins/lisa/skills/linear-read-issue/SKILL.md +200 -0
  31. package/plugins/lisa/skills/linear-sync/SKILL.md +89 -0
  32. package/plugins/lisa/skills/linear-to-tracker/SKILL.md +20 -13
  33. package/plugins/lisa/skills/linear-validate-issue/SKILL.md +270 -0
  34. package/plugins/lisa/skills/linear-verify/SKILL.md +51 -0
  35. package/plugins/lisa/skills/linear-write-issue/SKILL.md +282 -0
  36. package/plugins/lisa/skills/notion-prd-intake/SKILL.md +12 -6
  37. package/plugins/lisa/skills/notion-to-tracker/SKILL.md +21 -15
  38. package/plugins/lisa/skills/plan/SKILL.md +3 -2
  39. package/plugins/lisa/skills/prd-ticket-coverage/SKILL.md +1 -1
  40. package/plugins/lisa/skills/product-walkthrough/SKILL.md +2 -2
  41. package/plugins/lisa/skills/spec-conformance/SKILL.md +1 -2
  42. package/plugins/lisa/skills/ticket-triage/SKILL.md +1 -1
  43. package/plugins/lisa/skills/tracker-add-journey/SKILL.md +5 -3
  44. package/plugins/lisa/skills/tracker-build-intake/SKILL.md +5 -3
  45. package/plugins/lisa/skills/tracker-create/SKILL.md +5 -3
  46. package/plugins/lisa/skills/tracker-evidence/SKILL.md +5 -3
  47. package/plugins/lisa/skills/tracker-journey/SKILL.md +5 -3
  48. package/plugins/lisa/skills/tracker-read/SKILL.md +6 -4
  49. package/plugins/lisa/skills/{jira-source-artifacts → tracker-source-artifacts}/SKILL.md +5 -5
  50. package/plugins/lisa/skills/tracker-sync/SKILL.md +6 -4
  51. package/plugins/lisa/skills/tracker-validate/SKILL.md +8 -7
  52. package/plugins/lisa/skills/tracker-verify/SKILL.md +4 -2
  53. package/plugins/lisa/skills/tracker-write/SKILL.md +12 -10
  54. package/plugins/lisa/skills/verify/SKILL.md +1 -1
  55. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  56. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  57. package/plugins/lisa-expo/skills/jira-create/SKILL.md +4 -4
  58. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  59. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  60. package/plugins/lisa-rails/skills/jira-create/SKILL.md +4 -4
  61. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  62. package/plugins/src/base/agents/confluence-prd-intake.md +1 -1
  63. package/plugins/src/base/agents/github-prd-intake.md +2 -2
  64. package/plugins/src/base/agents/linear-agent.md +128 -0
  65. package/plugins/src/base/agents/linear-build-intake.md +62 -0
  66. package/plugins/src/base/agents/linear-prd-intake.md +2 -2
  67. package/plugins/src/base/agents/notion-prd-intake.md +1 -1
  68. package/plugins/src/base/commands/plan.md +1 -1
  69. package/plugins/src/base/rules/config-resolution.md +187 -0
  70. package/plugins/src/base/rules/intent-routing.md +13 -13
  71. package/plugins/src/base/skills/confluence-prd-intake/SKILL.md +9 -4
  72. package/plugins/src/base/skills/confluence-to-tracker/SKILL.md +23 -16
  73. package/plugins/src/base/skills/github-create/SKILL.md +4 -4
  74. package/plugins/src/base/skills/github-prd-intake/SKILL.md +8 -3
  75. package/plugins/src/base/skills/github-to-tracker/SKILL.md +22 -13
  76. package/plugins/src/base/skills/github-write-issue/SKILL.md +2 -2
  77. package/plugins/src/base/skills/implement/SKILL.md +1 -1
  78. package/plugins/src/base/skills/intake/SKILL.md +3 -3
  79. package/plugins/src/base/skills/jira-build-intake/SKILL.md +6 -3
  80. package/plugins/src/base/skills/jira-create/SKILL.md +4 -4
  81. package/plugins/src/base/skills/jira-validate-ticket/SKILL.md +1 -1
  82. package/plugins/src/base/skills/jira-write-ticket/SKILL.md +3 -3
  83. package/plugins/src/base/skills/linear-add-journey/SKILL.md +104 -0
  84. package/plugins/src/base/skills/linear-build-intake/SKILL.md +160 -0
  85. package/plugins/src/base/skills/linear-create/SKILL.md +146 -0
  86. package/plugins/src/base/skills/linear-evidence/SKILL.md +86 -0
  87. package/plugins/src/base/skills/linear-journey/SKILL.md +134 -0
  88. package/plugins/src/base/skills/linear-prd-intake/SKILL.md +11 -6
  89. package/plugins/src/base/skills/linear-read-issue/SKILL.md +200 -0
  90. package/plugins/src/base/skills/linear-sync/SKILL.md +89 -0
  91. package/plugins/src/base/skills/linear-to-tracker/SKILL.md +20 -13
  92. package/plugins/src/base/skills/linear-validate-issue/SKILL.md +270 -0
  93. package/plugins/src/base/skills/linear-verify/SKILL.md +51 -0
  94. package/plugins/src/base/skills/linear-write-issue/SKILL.md +282 -0
  95. package/plugins/src/base/skills/notion-prd-intake/SKILL.md +12 -6
  96. package/plugins/src/base/skills/notion-to-tracker/SKILL.md +21 -15
  97. package/plugins/src/base/skills/plan/SKILL.md +3 -2
  98. package/plugins/src/base/skills/prd-ticket-coverage/SKILL.md +1 -1
  99. package/plugins/src/base/skills/product-walkthrough/SKILL.md +2 -2
  100. package/plugins/src/base/skills/spec-conformance/SKILL.md +1 -2
  101. package/plugins/src/base/skills/ticket-triage/SKILL.md +1 -1
  102. package/plugins/src/base/skills/tracker-add-journey/SKILL.md +5 -3
  103. package/plugins/src/base/skills/tracker-build-intake/SKILL.md +5 -3
  104. package/plugins/src/base/skills/tracker-create/SKILL.md +5 -3
  105. package/plugins/src/base/skills/tracker-evidence/SKILL.md +5 -3
  106. package/plugins/src/base/skills/tracker-journey/SKILL.md +5 -3
  107. package/plugins/src/base/skills/tracker-read/SKILL.md +6 -4
  108. package/plugins/src/base/skills/{jira-source-artifacts → tracker-source-artifacts}/SKILL.md +5 -5
  109. package/plugins/src/base/skills/tracker-sync/SKILL.md +6 -4
  110. package/plugins/src/base/skills/tracker-validate/SKILL.md +8 -7
  111. package/plugins/src/base/skills/tracker-verify/SKILL.md +4 -2
  112. package/plugins/src/base/skills/tracker-write/SKILL.md +12 -10
  113. package/plugins/src/base/skills/verify/SKILL.md +1 -1
  114. package/plugins/src/expo/skills/jira-create/SKILL.md +4 -4
  115. package/plugins/src/rails/skills/jira-create/SKILL.md +4 -4
  116. package/plugins/lisa/rules/tracker-resolution.md +0 -76
  117. package/plugins/src/base/rules/tracker-resolution.md +0 -76
@@ -11,7 +11,7 @@ Analyze the provided file(s) and plan a JIRA hierarchy. **This skill plans struc
11
11
  ## Process
12
12
 
13
13
  1. **Analyze**: Read $ARGUMENTS to understand scope.
14
- 2. **Extract source artifacts**: invoke the `lisa:jira-source-artifacts` skill, then enumerate every external URL, embed, attachment, or example payload and classify each by domain per its rules. Build the `artifacts` map. See "Source Artifacts" below.
14
+ 2. **Extract source artifacts**: invoke the `lisa:tracker-source-artifacts` skill, then enumerate every external URL, embed, attachment, or example payload and classify each by domain per its rules. Build the `artifacts` map. See "Source Artifacts" below.
15
15
  3. **Walk the live product** (when applicable): if the work touches existing user-facing surfaces, invoke the `lisa:product-walkthrough` skill to capture current behavior, design-vs-product divergence, and reuse candidates. Skip only when the work is purely backend or affects a screen that does not yet exist. See "Live Product Walkthrough" below.
16
16
  4. **Determine structure**:
17
17
  - Epic needed if: multiple features, major changes, >3 related files
@@ -20,8 +20,8 @@ Analyze the provided file(s) and plan a JIRA hierarchy. **This skill plans struc
20
20
  ```text
21
21
  Epic → User Story → Tasks (test, implement, document, cleanup)
22
22
  ```
23
- 6. **Delegate every write to `lisa:jira-write-ticket`** in dependency order (epic first, then stories with the epic as parent, then sub-tasks with their story as parent). Pass the artifacts (filtered by domain per `lisa:jira-source-artifacts` inheritance rules) and the walkthrough findings (under `## Current Product`). See "Delegation to jira-write-ticket" below.
24
- 7. **Run the artifact preservation gate** (`lisa:jira-source-artifacts` §8): after all writes complete, build the preservation matrix and verify every extracted artifact is reachable from the created tickets. Fail loudly if anything was dropped.
23
+ 6. **Delegate every write to `lisa:jira-write-ticket`** in dependency order (epic first, then stories with the epic as parent, then sub-tasks with their story as parent). Pass the artifacts (filtered by domain per `lisa:tracker-source-artifacts` inheritance rules) and the walkthrough findings (under `## Current Product`). See "Delegation to jira-write-ticket" below.
24
+ 7. **Run the artifact preservation gate** (`lisa:tracker-source-artifacts` §8): after all writes complete, build the preservation matrix and verify every extracted artifact is reachable from the created tickets. Fail loudly if anything was dropped.
25
25
 
26
26
  ## Mandatory for Every Code Issue
27
27
 
@@ -35,7 +35,7 @@ Analyze the provided file(s) and plan a JIRA hierarchy. **This skill plans struc
35
35
 
36
36
  If $ARGUMENTS includes (or references) any external artifact — PRD, design doc, Figma URL, Lovable prototype, Loom walkthrough, screenshot, example payload — those references MUST be preserved as remote links on the created tickets. Silent artifact loss is the single most common quality failure in this pipeline.
37
37
 
38
- **Invoke the `lisa:jira-source-artifacts` skill** for the canonical rules: domains, per-tool classification (Figma `/proto/` vs design, Lovable, Loom, screenshots), source precedence, conflict handling under `## Open Questions`, inheritance from epic → story → sub-task, and the existing-component reuse expectation. Do not restate the rules here.
38
+ **Invoke the `lisa:tracker-source-artifacts` skill** for the canonical rules: domains, per-tool classification (Figma `/proto/` vs design, Lovable, Loom, screenshots), source precedence, conflict handling under `## Open Questions`, inheritance from epic → story → sub-task, and the existing-component reuse expectation. Do not restate the rules here.
39
39
 
40
40
  Rails-specific note: the existing-component reuse rule applies to view partials and ViewComponents — the closest existing partial/component is usually the right answer over pixel-matching a mock from scratch.
41
41
 
@@ -1,76 +0,0 @@
1
- # Tracker Resolution
2
-
3
- Lisa supports two destination trackers: **JIRA** (default, original) and **GitHub Issues**. The active tracker is resolved per project from `.lisa.config.json`.
4
-
5
- This rule is the single source of truth for how every vendor-neutral skill (the `tracker-*` family, the `*-to-tracker` PRD-source skills, and the lifecycle skills `implement` / `verify` / `monitor`) decides which destination to write to.
6
-
7
- ## Configuration
8
-
9
- Read `.lisa.config.json` (or `.lisa.config.local.json` if present — local overrides global) from the repo root. The schema additions:
10
-
11
- ```json
12
- {
13
- "tracker": "jira",
14
- "github": {
15
- "org": "<org-or-user>",
16
- "repo": "<repo>"
17
- }
18
- }
19
- ```
20
-
21
- | Field | Required | Default | Notes |
22
- |-------|----------|---------|-------|
23
- | `tracker` | no | `"jira"` | One of `"jira"` or `"github"`. Missing key resolves to `"jira"` for back-compat. |
24
- | `github.org` | when `tracker = "github"` | — | GitHub org or user name. |
25
- | `github.repo` | when `tracker = "github"` | — | GitHub repository name. |
26
-
27
- ## Resolution algorithm
28
-
29
- Every `tracker-*` shim and every vendor-neutral caller follows this:
30
-
31
- 1. Read `.lisa.config.json` (or `.lisa.config.local.json` if it exists; local takes precedence on per-key basis). Use `jq` from Bash; never hand-parse JSON.
32
- 2. Extract the `tracker` field. If missing or null, default to `"jira"`.
33
- 3. If `tracker = "jira"`, delegate to the matching `jira-*` skill.
34
- 4. If `tracker = "github"`, delegate to the matching `github-*` skill, AND ensure `github.org` and `github.repo` are present — stop and report if either is missing.
35
- 5. Any other value: stop and report `"Unknown tracker '<value>' in .lisa.config.json. Expected 'jira' or 'github'."`
36
-
37
- ## Skill mapping
38
-
39
- The shim → vendor mapping is fixed:
40
-
41
- | Shim | jira tracker | github tracker |
42
- |------|--------------|----------------|
43
- | `lisa:tracker-write` | `lisa:jira-write-ticket` | `lisa:github-write-issue` |
44
- | `lisa:tracker-validate` | `lisa:jira-validate-ticket` | `lisa:github-validate-issue` |
45
- | `lisa:tracker-verify` | `lisa:jira-verify` | `lisa:github-verify` |
46
- | `lisa:tracker-read` | `lisa:jira-read-ticket` | `lisa:github-read-issue` |
47
- | `lisa:tracker-evidence` | `lisa:jira-evidence` | `lisa:github-evidence` |
48
- | `lisa:tracker-sync` | `lisa:jira-sync` | `lisa:github-sync` |
49
- | `lisa:tracker-add-journey` | `lisa:jira-add-journey` | `lisa:github-add-journey` |
50
- | `lisa:tracker-journey` | `lisa:jira-journey` | `lisa:github-journey` |
51
- | `lisa:tracker-create` | `lisa:jira-create` | `lisa:github-create` |
52
- | `lisa:tracker-build-intake` | `lisa:jira-build-intake` | `lisa:github-build-intake` |
53
-
54
- The `jira-source-artifacts` skill is read-only and vendor-neutral — it has no shim and no GitHub counterpart. Both vendors invoke it directly.
55
-
56
- ## Caller responsibilities
57
-
58
- - **PRD-source skills** (`notion-to-tracker`, `confluence-to-tracker`, `linear-to-tracker`, `github-to-tracker`) must invoke `tracker-write` and `tracker-validate` — never `jira-write-ticket` / `github-write-issue` directly. This is what makes a project's tracker switchable via config.
59
- - **Lifecycle skills** (`implement`, `verify`, `monitor`) must invoke `tracker-read`, `tracker-evidence`, `tracker-sync` for ticket interaction — never the vendor-specific equivalents.
60
- - **Per-vendor PRD intake skills** (`notion-prd-intake`, `confluence-prd-intake`, `linear-prd-intake`, `github-prd-intake`) compose the PRD-source skills (which in turn invoke the shims) — they do not need to read `tracker` themselves.
61
-
62
- ## Invariants
63
-
64
- - Project tracker selection is **persistent** within a project — always read from config, never infer from the shape of `$ARGUMENTS`. If a developer wants a different destination for one run, they edit `.lisa.config.local.json`.
65
- - A vendor-neutral skill never embeds vendor-specific terminology in its prompts (no "JIRA ticket key", "epic parent" — use "tracker key", "parent issue"). The vendor skill is responsible for translating its inputs.
66
- - The shim layer is intentionally thin — its only job is dispatch. Gate logic, validation rules, and field schemas all live in the vendor skills.
67
-
68
- ## Self-host edge case (GitHub PRDs → GitHub destination)
69
-
70
- When `github-to-tracker` is invoked AND `tracker = "github"`, both reads and writes hit the same GitHub repo. Label namespaces are kept separate so the two flows don't collide:
71
-
72
- - PRD-source labels: `prd-draft`, `prd-ready`, `prd-in-review`, `prd-blocked`, `prd-ticketed`, `prd-shipped` — owned by `github-prd-intake` and the human PM.
73
- - Build-queue labels: `status:ready`, `status:in-progress`, `status:code-review`, `status:on-dev`, `status:done` — owned by `github-build-intake` and `github-agent`.
74
- - Sentinel issue label: `prd-intake-feedback` — owned by `github-prd-intake`.
75
-
76
- Never overload one label across both lifecycles.
@@ -1,76 +0,0 @@
1
- # Tracker Resolution
2
-
3
- Lisa supports two destination trackers: **JIRA** (default, original) and **GitHub Issues**. The active tracker is resolved per project from `.lisa.config.json`.
4
-
5
- This rule is the single source of truth for how every vendor-neutral skill (the `tracker-*` family, the `*-to-tracker` PRD-source skills, and the lifecycle skills `implement` / `verify` / `monitor`) decides which destination to write to.
6
-
7
- ## Configuration
8
-
9
- Read `.lisa.config.json` (or `.lisa.config.local.json` if present — local overrides global) from the repo root. The schema additions:
10
-
11
- ```json
12
- {
13
- "tracker": "jira",
14
- "github": {
15
- "org": "<org-or-user>",
16
- "repo": "<repo>"
17
- }
18
- }
19
- ```
20
-
21
- | Field | Required | Default | Notes |
22
- |-------|----------|---------|-------|
23
- | `tracker` | no | `"jira"` | One of `"jira"` or `"github"`. Missing key resolves to `"jira"` for back-compat. |
24
- | `github.org` | when `tracker = "github"` | — | GitHub org or user name. |
25
- | `github.repo` | when `tracker = "github"` | — | GitHub repository name. |
26
-
27
- ## Resolution algorithm
28
-
29
- Every `tracker-*` shim and every vendor-neutral caller follows this:
30
-
31
- 1. Read `.lisa.config.json` (or `.lisa.config.local.json` if it exists; local takes precedence on per-key basis). Use `jq` from Bash; never hand-parse JSON.
32
- 2. Extract the `tracker` field. If missing or null, default to `"jira"`.
33
- 3. If `tracker = "jira"`, delegate to the matching `jira-*` skill.
34
- 4. If `tracker = "github"`, delegate to the matching `github-*` skill, AND ensure `github.org` and `github.repo` are present — stop and report if either is missing.
35
- 5. Any other value: stop and report `"Unknown tracker '<value>' in .lisa.config.json. Expected 'jira' or 'github'."`
36
-
37
- ## Skill mapping
38
-
39
- The shim → vendor mapping is fixed:
40
-
41
- | Shim | jira tracker | github tracker |
42
- |------|--------------|----------------|
43
- | `lisa:tracker-write` | `lisa:jira-write-ticket` | `lisa:github-write-issue` |
44
- | `lisa:tracker-validate` | `lisa:jira-validate-ticket` | `lisa:github-validate-issue` |
45
- | `lisa:tracker-verify` | `lisa:jira-verify` | `lisa:github-verify` |
46
- | `lisa:tracker-read` | `lisa:jira-read-ticket` | `lisa:github-read-issue` |
47
- | `lisa:tracker-evidence` | `lisa:jira-evidence` | `lisa:github-evidence` |
48
- | `lisa:tracker-sync` | `lisa:jira-sync` | `lisa:github-sync` |
49
- | `lisa:tracker-add-journey` | `lisa:jira-add-journey` | `lisa:github-add-journey` |
50
- | `lisa:tracker-journey` | `lisa:jira-journey` | `lisa:github-journey` |
51
- | `lisa:tracker-create` | `lisa:jira-create` | `lisa:github-create` |
52
- | `lisa:tracker-build-intake` | `lisa:jira-build-intake` | `lisa:github-build-intake` |
53
-
54
- The `jira-source-artifacts` skill is read-only and vendor-neutral — it has no shim and no GitHub counterpart. Both vendors invoke it directly.
55
-
56
- ## Caller responsibilities
57
-
58
- - **PRD-source skills** (`notion-to-tracker`, `confluence-to-tracker`, `linear-to-tracker`, `github-to-tracker`) must invoke `tracker-write` and `tracker-validate` — never `jira-write-ticket` / `github-write-issue` directly. This is what makes a project's tracker switchable via config.
59
- - **Lifecycle skills** (`implement`, `verify`, `monitor`) must invoke `tracker-read`, `tracker-evidence`, `tracker-sync` for ticket interaction — never the vendor-specific equivalents.
60
- - **Per-vendor PRD intake skills** (`notion-prd-intake`, `confluence-prd-intake`, `linear-prd-intake`, `github-prd-intake`) compose the PRD-source skills (which in turn invoke the shims) — they do not need to read `tracker` themselves.
61
-
62
- ## Invariants
63
-
64
- - Project tracker selection is **persistent** within a project — always read from config, never infer from the shape of `$ARGUMENTS`. If a developer wants a different destination for one run, they edit `.lisa.config.local.json`.
65
- - A vendor-neutral skill never embeds vendor-specific terminology in its prompts (no "JIRA ticket key", "epic parent" — use "tracker key", "parent issue"). The vendor skill is responsible for translating its inputs.
66
- - The shim layer is intentionally thin — its only job is dispatch. Gate logic, validation rules, and field schemas all live in the vendor skills.
67
-
68
- ## Self-host edge case (GitHub PRDs → GitHub destination)
69
-
70
- When `github-to-tracker` is invoked AND `tracker = "github"`, both reads and writes hit the same GitHub repo. Label namespaces are kept separate so the two flows don't collide:
71
-
72
- - PRD-source labels: `prd-draft`, `prd-ready`, `prd-in-review`, `prd-blocked`, `prd-ticketed`, `prd-shipped` — owned by `github-prd-intake` and the human PM.
73
- - Build-queue labels: `status:ready`, `status:in-progress`, `status:code-review`, `status:on-dev`, `status:done` — owned by `github-build-intake` and `github-agent`.
74
- - Sentinel issue label: `prd-intake-feedback` — owned by `github-prd-intake`.
75
-
76
- Never overload one label across both lifecycles.