@deftai/directive-content 0.80.0 → 0.81.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/Taskfile.yml +3 -0
- package/UPGRADING.md +14 -0
- package/docs/product-signal.md +50 -0
- package/languages/typescript.md +40 -0
- package/package.json +1 -1
- package/packs/skills/skills-pack-0.1.json +14 -0
- package/skills/deft-directive-product-signal/SKILL.md +94 -0
- package/tasks/product-signal.yml +55 -0
package/Taskfile.yml
CHANGED
|
@@ -330,6 +330,9 @@ includes:
|
|
|
330
330
|
value:
|
|
331
331
|
taskfile: ./tasks/value.yml
|
|
332
332
|
optional: true
|
|
333
|
+
product-signal:
|
|
334
|
+
taskfile: ./tasks/product-signal.yml
|
|
335
|
+
optional: true
|
|
333
336
|
# Pack-slicing surface (#1283 design, #1294 pilot, ADR-001 Layer B). Exposes
|
|
334
337
|
# `task packs:slice` (named-slice API), `task packs:render` (regenerate the
|
|
335
338
|
# meta/lessons.md projection), and `task packs:verify-drift` (the drift gate,
|
package/UPGRADING.md
CHANGED
|
@@ -12,6 +12,20 @@ Legend (from RFC2119): !=MUST, ~=SHOULD, ≉=SHOULD NOT, ⊗=MUST NOT, ?=MAY.
|
|
|
12
12
|
|
|
13
13
|
---
|
|
14
14
|
|
|
15
|
+
## TypeScript 7 side-by-side (pre-7.1) (#2591)
|
|
16
|
+
|
|
17
|
+
- **Applies when:** a Deft TypeScript project (or agent upgrading its toolchain) needs TypeScript 7 before ~7.1, while `typescript-eslint` and other programmatic consumers still require the TS 6 compiler API. This is **not** a Directive framework-version migration — read [languages/typescript.md](./languages/typescript.md) instead of treating it like a `deft update` step.
|
|
18
|
+
- **Safe to auto-run:** Yes for the alias + Dependabot-ignore edits in the project's own `package.json` / `.github/dependabot.yml` when following the documented pattern.
|
|
19
|
+
- **Restart required:** No. Re-run `task check` / `npm install` (or your package manager equivalent) after changing devDependencies.
|
|
20
|
+
- **Commands:**
|
|
21
|
+
- Read the full pattern: [languages/typescript.md — TypeScript 7 side-by-side (pre-7.1)](./languages/typescript.md#typescript-7-side-by-side-pre-71)
|
|
22
|
+
- After edits: `npm install` (or `pnpm install` / `yarn`) then `task check`
|
|
23
|
+
- **References:**
|
|
24
|
+
- [#2591](https://github.com/deftai/directive/issues/2591) — document side-by-side setup for Deft TypeScript projects.
|
|
25
|
+
- [deftai/cartograph#111](https://github.com/deftai/cartograph/pull/111) — precedent implementation.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
15
29
|
## Helped + health metrics relocation (#2545)
|
|
16
30
|
|
|
17
31
|
- **Applies when:** any project that upgraded to a release shipping #2545 and still has append logs under `<lifecycle-root>/.eval/results/crud-metrics.jsonl` or `health-history.jsonl` inside the git worktree.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Product signal (optional partner check-in)
|
|
2
|
+
|
|
3
|
+
Phase 1 consented product-improvement signal under epic #2603 (#2693). Defaults **off**.
|
|
4
|
+
|
|
5
|
+
## Enable (project)
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
task product-signal:enable -- --confirm
|
|
9
|
+
task policy:show -- --field=productSignal
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
Capability-cost disclosure prints before `--confirm` applies `plan.policy.productSignal.enabled=true`.
|
|
13
|
+
|
|
14
|
+
## Consent (install / user)
|
|
15
|
+
|
|
16
|
+
Consent file: `%APPDATA%\\deft\\product-signal-consent.json` (Windows) or `~/.config/deft/product-signal-consent.json` (Unix).
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
task product-signal:consent -- --grant
|
|
20
|
+
task product-signal:consent -- --revoke
|
|
21
|
+
task product-signal:status
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Outbound requires **both** enable and consent.
|
|
25
|
+
|
|
26
|
+
## Submit (ops / tests)
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
task product-signal:submit -- --surface pulse|portrait [--dry-run] [--json] [--nps 0-10]
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Sink bootstrap (maintainers)
|
|
33
|
+
|
|
34
|
+
Internal (org) inbox: `deftai/product-signal` (overridable via `plan.policy.productSignal.sinkRepo`). Not public.
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
task product-signal:bootstrap-sink [-- --dry-run]
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Creates the repo if needed, sets visibility to **internal**, and bootstraps D20 labels (`surface:*`, `nps:*`, `signal:gap`). Standing threads keyed by `(installId, actorName)`.
|
|
41
|
+
|
|
42
|
+
## Skill
|
|
43
|
+
|
|
44
|
+
Agents: `deft-directive-product-signal` — triggers `product check-in`, `product pulse`, `partner feedback`, `product signal`.
|
|
45
|
+
|
|
46
|
+
## Related
|
|
47
|
+
|
|
48
|
+
- Public gap escalation: `deft-directive-feedback` / `task feedback:file` (hard confirm)
|
|
49
|
+
- Skill telemetry emit: #829 (optional `skillsSummary` hook only; not required for pulse)
|
|
50
|
+
- HTTP transport: #2697 (Phase 2)
|
package/languages/typescript.md
CHANGED
|
@@ -124,6 +124,46 @@ Key settings: `@typescript-eslint/parser`, extends `recommended` + `recommended-
|
|
|
124
124
|
- ⊗ Empty `catch` blocks or `catch (e) {}` — log or re-throw
|
|
125
125
|
- ⊗ Returning `null`, `undefined`, or a neutral default to mask a thrown error
|
|
126
126
|
|
|
127
|
+
## TypeScript 7 side-by-side (pre-7.1)
|
|
128
|
+
|
|
129
|
+
TypeScript 7.0 ships without a stable programmatic compiler API. A direct `typescript` major bump to 7 breaks `typescript-eslint` (for example `ModuleKind.Cjs` is undefined). Until ~7.1, ! run TS 7 side-by-side with a TS 6 alias for tooling that still needs the compiler API — the same pattern as [deftai/cartograph#111](https://github.com/deftai/cartograph/pull/111).
|
|
130
|
+
|
|
131
|
+
### package.json aliases
|
|
132
|
+
|
|
133
|
+
Keep `typescript` on the TS 6 API for ESLint, `tsc --noEmit`, and other programmatic consumers. Install TS 7 under `@typescript/native`:
|
|
134
|
+
|
|
135
|
+
```json
|
|
136
|
+
{
|
|
137
|
+
"devDependencies": {
|
|
138
|
+
"@typescript/native": "npm:typescript@^7.0.2",
|
|
139
|
+
"typescript": "npm:@typescript/typescript6@^6.0.2"
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
Use `@typescript/native` (or `pnpm exec tsgo`) for TS 7-native typechecking when you opt in; keep existing `typescript` / `tsc` scripts on the alias until typescript-eslint and your toolchain support TS 7's programmatic surface.
|
|
145
|
+
|
|
146
|
+
### Dependabot
|
|
147
|
+
|
|
148
|
+
Because `typescript` is aliased to `@typescript/typescript6`, ! ignore Dependabot major bumps on the `typescript` dependency name until you intentionally migrate off the side-by-side layout:
|
|
149
|
+
|
|
150
|
+
```yaml
|
|
151
|
+
ignore:
|
|
152
|
+
- dependency-name: "typescript"
|
|
153
|
+
update-types: ["version-update:semver-major"]
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### Scaffold and doctor coverage
|
|
157
|
+
|
|
158
|
+
**Scaffold bake — deferred (#2591):** Directive does not ship a Deft-owned TypeScript `package.json` scaffold to mutate. New TypeScript projects copy the alias snippet from this section into their own `package.json`.
|
|
159
|
+
|
|
160
|
+
**Doctor hint — shipped (#2591):** `deft doctor` warns (advisory, exit-exempt) when `package.json` declares typescript-eslint (`typescript-eslint` or `@typescript-eslint/*`) and `eslint`, and `typescript` resolves to 7.x without the `@typescript/typescript6` alias — pointing here and at the Cartograph alias pattern above. Scaffold bake remains deferred.
|
|
161
|
+
|
|
162
|
+
### References
|
|
163
|
+
|
|
164
|
+
- [Announcing TypeScript 7.0 — side-by-side install](https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/#side-by-side-installation) — official TS 7 side-by-side guidance.
|
|
165
|
+
- [typescript-eslint#12518](https://github.com/typescript-eslint/typescript-eslint/issues/12518) — typescript-eslint TS 7 / compiler API tracking.
|
|
166
|
+
|
|
127
167
|
## Compliance Checklist
|
|
128
168
|
|
|
129
169
|
- ! Include TSDoc comments for all exported APIs
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deftai/directive-content",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.81.0",
|
|
4
4
|
"description": "Shippable Directive framework content in the consumer .deft/core/ layout (C1 flatten), plus the engine surfaces (.githooks/, Taskfile.yml, tasks/) the deposit wires. Python-free per #2022 Phase 3. Refs #11, #1669, #1967.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
@@ -91,6 +91,20 @@
|
|
|
91
91
|
"body": "# Deft Directive Feedback -- gap escalation to upstream\n\nConversational batched flow for filing framework gaps discovered during consumer sessions. Mirrors the confirmation gate from `deft-directive-article-review` -- the agent drafts and dedups; the operator approves before any upstream issue is created.\n\nLegend (from RFC2119): !=MUST, ~=SHOULD, ≉=SHOULD NOT, ⊗=MUST NOT, ?=MAY.\n\n## When to Use\n\n- Session end when `friction:*` ledger signals or operator reports a directive shortfall\n- Operator says \"file this upstream\", \"report a framework gap\", or \"directive feedback\"\n- After enabling `plan.policy.valueFeedback.upstreamPrompt` during onboarding\n\n## Preconditions\n\n- ! Run only from a **consumer project** -- the filing path no-ops inside the directive maintainer repo\n- ! `plan.policy.valueFeedback.upstreamPrompt` MUST be ON (`task policy:show --field=valueFeedback`)\n- ⊗ File upstream issues without explicit operator confirmation\n- ⊗ Invoke when `valueFeedback.enabled` is OFF\n\n## Phase 1 -- Collect (batched)\n\n- ! Gather concrete gap reports from the session: what was expected, what happened, and minimal reproduction context\n- ! Batch multiple friction items into one upstream issue when they share a root cause; otherwise prepare separate drafts\n- ~ Prefer attributed phrasing (\"encoding gate blocked a valid file\") over vague quality claims\n\n## Phase 2 -- Draft + dedup\n\n- ! For each candidate report, run a dry draft:\n\n```bash\ntask feedback:file -- --summary \"<one-line summary>\" --context \"<session context>\" --expected \"<expected>\" --actual \"<actual>\" --notes \"<optional>\"\n```\n\n- ! Read the printed draft title/body with the operator before proceeding\n- ! If the command reports a duplicate open issue, STOP and link the existing issue instead of filing again\n- ⊗ Proceed past a duplicate-detection block without operator override\n\n## Phase 3 -- Confirm + file\n\n- ! Present the final draft and ask for explicit yes/no confirmation\n- ! Only after approval, re-run with `--confirm`:\n\n```bash\ntask feedback:file -- --summary \"<one-line summary>\" --context \"<session context>\" --expected \"<expected>\" --actual \"<actual>\" --confirm\n```\n\n- ! Print the filed issue URL to the operator\n- ⊗ Use `Closes`/`Fixes`/`Resolves` in the upstream body -- use `Refs #1709` only\n\n## Phase 4 -- Handoff\n\n- ~ Record the upstream issue URL in the session handoff or continue checkpoint if the operator tracks follow-ups locally\n- ~ Return to the prior workflow; gap escalation does not block story completion\n\n## Anti-Patterns\n\n- ⊗ Filing from the maintainer framework repo (consumer-only guard)\n- ⊗ Skipping dedup review when the command reports an existing open issue\n- ⊗ Treating `--confirm` as implicit from broad session approval -- require an explicit filing confirmation step\n",
|
|
92
92
|
"frontmatter_extra": null
|
|
93
93
|
},
|
|
94
|
+
{
|
|
95
|
+
"id": "deft-directive-product-signal",
|
|
96
|
+
"description": "Consented agent-driven product check-in (pulse + portrait) with enable and consent gates, minimized local ledger attach, and private GitHub sink submit. Defaults off.",
|
|
97
|
+
"triggers": [
|
|
98
|
+
"product check-in",
|
|
99
|
+
"product pulse",
|
|
100
|
+
"partner feedback",
|
|
101
|
+
"product signal"
|
|
102
|
+
],
|
|
103
|
+
"path": "skills/deft-directive-product-signal/SKILL.md",
|
|
104
|
+
"version": "0.1",
|
|
105
|
+
"body": "# Deft Directive Product Signal — consented check-in (#2693)\n\nAgent-driven qualitative product-improvement signal for partner/trial installs. Lightweight interview, minimized local summaries (value/health/helped), optional skillsSummary hook — submits to private `deftai/product-signal` when enable + consent gates pass.\n\nLegend (from RFC2119): !=MUST, ~=SHOULD, ≉=SHOULD NOT, ⊗=MUST NOT, ?=MAY.\n\n## When to Use\n\n- Operator says `product check-in`, `product pulse`, `partner feedback`, or `product signal`\n- Partner onboarding after ops enables `plan.policy.productSignal`\n- ⊗ Do NOT invoke from session:start or ambient rituals when disabled (#2693 D3)\n\n## Preconditions\n\n- ! `plan.policy.productSignal.enabled` MUST be true (`task policy:show --field=productSignal`)\n- ! Install-level consent MUST be recorded before outbound submit (`task product-signal:status`)\n- ⊗ Prompt or submit when `enabled` is false\n- ⊗ Block story work on sink errors — fail open (#2693 D16/D18)\n\n## Phase 1 — Gate\n\n```bash\ntask product-signal:status\ntask policy:show -- --field=productSignal\n```\n\n- ! If disabled: soft-skip with one line; exit skill\n- ! If headless/CI: fail open — no consent/interview prompts (#2693 D16)\n\n## Phase 2 — First-time consent (interactive only, D17)\n\nWhen enabled, interactive, and consent missing/revoked, ask:\n\n> May we collect usage metrics and related session signal from this install to improve Directive? This can include a short check-in plus minimized local summaries (value/health and related ledgers). Nothing is sent while this path is off or without your consent.\n>\n> If you are unsure, please check with your company before saying no — they are a Directive partner and may already expect this signal to be shared.\n>\n> Reply **yes** to consent, or **no** to decline.\n\n- **yes** → `task product-signal:consent -- --grant`; continue\n- **no** → soft-skip; do not badger every turn\n\n## Phase 3 — Interview (≤3 answers + optional NPS)\n\n- ! Ask at most three short questions plus optional NPS (0–10)\n- ~ Target ≤30s human time beyond first-time consent\n- ⊗ Paste secrets, paths, raw logs, or full USER.md into answers\n\n## Phase 4 — Assemble + validate + submit\n\n```bash\ntask product-signal:submit -- --surface pulse --dry-run\ntask product-signal:submit -- --surface pulse --nps 9\n```\n\n- ! On validation failure: show reason; no partial write\n- ! On sink ACL/network errors: soft-skip with hint; do not fail caller (#2693 D18)\n- ! Report issue URL on success\n\n## Private gaps (D19)\n\n- ! Record bugs/gaps as `Gap:` comments on the standing **pulse** thread (enable+consent sufficient)\n- ! Public promote to `deftai/directive` remains hard-confirm via `deft-directive-feedback` / `task feedback:file`\n\n## Revoke\n\n```bash\ntask product-signal:consent -- --revoke\n# and/or disable: set plan.policy.productSignal.enabled false\n```\n\n## Anti-Patterns\n\n- ⊗ Ambient consent nag when disabled\n- ⊗ Fail-closed headless behavior\n- ⊗ Sticky forever-fail when sink is down\n- ⊗ Auto-file public framework-gap issues from pulses\n\n## Exit\n\ndeft-directive-product-signal complete — exiting skill.\n",
|
|
106
|
+
"frontmatter_extra": null
|
|
107
|
+
},
|
|
94
108
|
{
|
|
95
109
|
"id": "deft-directive-gh-arch",
|
|
96
110
|
"description": "Explore a codebase for architectural improvement opportunities -- deepen shallow modules, generate competing interface designs in parallel via sub- agents, and file a refactor RFC as a GitHub Issue. Use when improving architecture, finding refactoring opportunities, or making a codebase more testable and AI-navigable. Requires the GitHub CLI (gh).",
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: deft-directive-product-signal
|
|
3
|
+
description: >-
|
|
4
|
+
Consented agent-driven product check-in (pulse + portrait) with enable and
|
|
5
|
+
consent gates, minimized local ledger attach, and private GitHub sink
|
|
6
|
+
submit. Defaults off.
|
|
7
|
+
---
|
|
8
|
+
<!-- AUTO-GENERATED by task packs:render -- DO NOT EDIT MANUALLY -->
|
|
9
|
+
<!-- Purpose: rendered skill -->
|
|
10
|
+
<!-- Source of truth: packs/skills/skills-pack-0.1.json -->
|
|
11
|
+
<!-- Regenerate with: task packs:render -->
|
|
12
|
+
<!-- Edit the source, not this file. Slice instead of loading every SKILL.md: task packs:slice skills by-trigger --trigger <kw> (or list) -->
|
|
13
|
+
|
|
14
|
+
# Deft Directive Product Signal — consented check-in (#2693)
|
|
15
|
+
|
|
16
|
+
Agent-driven qualitative product-improvement signal for partner/trial installs. Lightweight interview, minimized local summaries (value/health/helped), optional skillsSummary hook — submits to private `deftai/product-signal` when enable + consent gates pass.
|
|
17
|
+
|
|
18
|
+
Legend (from RFC2119): !=MUST, ~=SHOULD, ≉=SHOULD NOT, ⊗=MUST NOT, ?=MAY.
|
|
19
|
+
|
|
20
|
+
## When to Use
|
|
21
|
+
|
|
22
|
+
- Operator says `product check-in`, `product pulse`, `partner feedback`, or `product signal`
|
|
23
|
+
- Partner onboarding after ops enables `plan.policy.productSignal`
|
|
24
|
+
- ⊗ Do NOT invoke from session:start or ambient rituals when disabled (#2693 D3)
|
|
25
|
+
|
|
26
|
+
## Preconditions
|
|
27
|
+
|
|
28
|
+
- ! `plan.policy.productSignal.enabled` MUST be true (`task policy:show --field=productSignal`)
|
|
29
|
+
- ! Install-level consent MUST be recorded before outbound submit (`task product-signal:status`)
|
|
30
|
+
- ⊗ Prompt or submit when `enabled` is false
|
|
31
|
+
- ⊗ Block story work on sink errors — fail open (#2693 D16/D18)
|
|
32
|
+
|
|
33
|
+
## Phase 1 — Gate
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
task product-signal:status
|
|
37
|
+
task policy:show -- --field=productSignal
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
- ! If disabled: soft-skip with one line; exit skill
|
|
41
|
+
- ! If headless/CI: fail open — no consent/interview prompts (#2693 D16)
|
|
42
|
+
|
|
43
|
+
## Phase 2 — First-time consent (interactive only, D17)
|
|
44
|
+
|
|
45
|
+
When enabled, interactive, and consent missing/revoked, ask:
|
|
46
|
+
|
|
47
|
+
> May we collect usage metrics and related session signal from this install to improve Directive? This can include a short check-in plus minimized local summaries (value/health and related ledgers). Nothing is sent while this path is off or without your consent.
|
|
48
|
+
>
|
|
49
|
+
> If you are unsure, please check with your company before saying no — they are a Directive partner and may already expect this signal to be shared.
|
|
50
|
+
>
|
|
51
|
+
> Reply **yes** to consent, or **no** to decline.
|
|
52
|
+
|
|
53
|
+
- **yes** → `task product-signal:consent -- --grant`; continue
|
|
54
|
+
- **no** → soft-skip; do not badger every turn
|
|
55
|
+
|
|
56
|
+
## Phase 3 — Interview (≤3 answers + optional NPS)
|
|
57
|
+
|
|
58
|
+
- ! Ask at most three short questions plus optional NPS (0–10)
|
|
59
|
+
- ~ Target ≤30s human time beyond first-time consent
|
|
60
|
+
- ⊗ Paste secrets, paths, raw logs, or full USER.md into answers
|
|
61
|
+
|
|
62
|
+
## Phase 4 — Assemble + validate + submit
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
task product-signal:submit -- --surface pulse --dry-run
|
|
66
|
+
task product-signal:submit -- --surface pulse --nps 9
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
- ! On validation failure: show reason; no partial write
|
|
70
|
+
- ! On sink ACL/network errors: soft-skip with hint; do not fail caller (#2693 D18)
|
|
71
|
+
- ! Report issue URL on success
|
|
72
|
+
|
|
73
|
+
## Private gaps (D19)
|
|
74
|
+
|
|
75
|
+
- ! Record bugs/gaps as `Gap:` comments on the standing **pulse** thread (enable+consent sufficient)
|
|
76
|
+
- ! Public promote to `deftai/directive` remains hard-confirm via `deft-directive-feedback` / `task feedback:file`
|
|
77
|
+
|
|
78
|
+
## Revoke
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
task product-signal:consent -- --revoke
|
|
82
|
+
# and/or disable: set plan.policy.productSignal.enabled false
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Anti-Patterns
|
|
86
|
+
|
|
87
|
+
- ⊗ Ambient consent nag when disabled
|
|
88
|
+
- ⊗ Fail-closed headless behavior
|
|
89
|
+
- ⊗ Sticky forever-fail when sink is down
|
|
90
|
+
- ⊗ Auto-file public framework-gap issues from pulses
|
|
91
|
+
|
|
92
|
+
## Exit
|
|
93
|
+
|
|
94
|
+
deft-directive-product-signal complete — exiting skill.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
version: '3'
|
|
2
|
+
|
|
3
|
+
vars:
|
|
4
|
+
DEFT_ROOT: '{{joinPath .TASKFILE_DIR ".."}}'
|
|
5
|
+
|
|
6
|
+
tasks:
|
|
7
|
+
status:
|
|
8
|
+
desc: "Show product-signal enable/consent/sink status (#2693). -- task product-signal:status"
|
|
9
|
+
dir: '{{.USER_WORKING_DIR}}'
|
|
10
|
+
deps:
|
|
11
|
+
- task: :engine:_ts-build
|
|
12
|
+
cmds:
|
|
13
|
+
- task: :engine:invoke
|
|
14
|
+
vars:
|
|
15
|
+
ENGINE_CMD: 'product-signal status --project-root "{{.USER_WORKING_DIR}}" {{.CLI_ARGS}}'
|
|
16
|
+
|
|
17
|
+
enable:
|
|
18
|
+
desc: "Enable plan.policy.productSignal after capability-cost disclosure (#2693). -- task product-signal:enable -- [--confirm]"
|
|
19
|
+
dir: '{{.USER_WORKING_DIR}}'
|
|
20
|
+
deps:
|
|
21
|
+
- task: :engine:_ts-build
|
|
22
|
+
cmds:
|
|
23
|
+
- task: :engine:invoke
|
|
24
|
+
vars:
|
|
25
|
+
ENGINE_CMD: 'product-signal enable --project-root "{{.USER_WORKING_DIR}}" {{.CLI_ARGS}}'
|
|
26
|
+
|
|
27
|
+
consent:
|
|
28
|
+
desc: "Grant or revoke install-level product-signal consent (#2693). -- task product-signal:consent -- --grant|--revoke"
|
|
29
|
+
dir: '{{.USER_WORKING_DIR}}'
|
|
30
|
+
deps:
|
|
31
|
+
- task: :engine:_ts-build
|
|
32
|
+
cmds:
|
|
33
|
+
- task: :engine:invoke
|
|
34
|
+
vars:
|
|
35
|
+
ENGINE_CMD: 'product-signal consent {{.CLI_ARGS}}'
|
|
36
|
+
|
|
37
|
+
submit:
|
|
38
|
+
desc: "Submit pulse/portrait payload to private sink when gated (#2693). -- task product-signal:submit -- [--surface pulse|portrait] [--dry-run] [--json]"
|
|
39
|
+
dir: '{{.USER_WORKING_DIR}}'
|
|
40
|
+
deps:
|
|
41
|
+
- task: :engine:_ts-build
|
|
42
|
+
cmds:
|
|
43
|
+
- task: :engine:invoke
|
|
44
|
+
vars:
|
|
45
|
+
ENGINE_CMD: 'product-signal submit --project-root "{{.USER_WORKING_DIR}}" {{.CLI_ARGS}}'
|
|
46
|
+
|
|
47
|
+
bootstrap-sink:
|
|
48
|
+
desc: "Create private deftai/product-signal repo and bootstrap D20 labels (#2693). -- task product-signal:bootstrap-sink [-- --dry-run]"
|
|
49
|
+
dir: '{{.USER_WORKING_DIR}}'
|
|
50
|
+
deps:
|
|
51
|
+
- task: :engine:_ts-build
|
|
52
|
+
cmds:
|
|
53
|
+
- task: :engine:invoke
|
|
54
|
+
vars:
|
|
55
|
+
ENGINE_CMD: 'product-signal bootstrap-sink {{.CLI_ARGS}}'
|