@brainervirus/workit-cursor 0.10.0 → 1.0.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 (108) hide show
  1. package/.cursor-plugin/plugin.json +6 -6
  2. package/README.md +27 -31
  3. package/assets/templates/workit-contract.md +12 -0
  4. package/commands/wk-babysit.md +7 -0
  5. package/commands/wk-blast-radius.md +7 -0
  6. package/commands/wk-challenge.md +7 -0
  7. package/commands/wk-debug.md +7 -0
  8. package/commands/wk-deslop.md +7 -0
  9. package/commands/wk-diagram.md +7 -0
  10. package/commands/wk-green-run.md +7 -0
  11. package/commands/wk-handoff.md +7 -0
  12. package/commands/wk-implement.md +7 -0
  13. package/commands/wk-mockup.md +7 -0
  14. package/commands/wk-plan.md +7 -0
  15. package/commands/wk-review.md +7 -0
  16. package/commands/wk-steer.md +7 -0
  17. package/commands/wk-tdd.md +7 -0
  18. package/dist/cursor-session-start.js +13240 -414
  19. package/dist/mcp-server.js +26116 -27351
  20. package/dist/workit-hook.js +13202 -0
  21. package/hooks/hooks-cursor.json +29 -0
  22. package/package.json +8 -8
  23. package/rules/workit-contract.mdc +28 -0
  24. package/skills/workit-babysit/SKILL.md +33 -0
  25. package/skills/workit-behavioral-tdd/SKILL.md +53 -0
  26. package/skills/workit-blast-radius/SKILL.md +31 -0
  27. package/skills/workit-challenge/SKILL.md +62 -0
  28. package/skills/workit-debug/SKILL.md +61 -0
  29. package/skills/workit-deslop/SKILL.md +36 -0
  30. package/skills/workit-diagram/SKILL.md +32 -0
  31. package/skills/workit-green-run/SKILL.md +29 -0
  32. package/skills/workit-handoff/SKILL.md +43 -0
  33. package/skills/workit-implement/SKILL.md +46 -0
  34. package/skills/workit-mockup/SKILL.md +28 -0
  35. package/skills/workit-plan/SKILL.md +66 -0
  36. package/skills/workit-review/SKILL.md +60 -0
  37. package/skills/workit-steer/SKILL.md +32 -0
  38. package/assets/templates/execution-contract.md +0 -73
  39. package/assets/templates/greeting.md +0 -1
  40. package/assets/templates/headers.md +0 -3
  41. package/assets/templates/hygiene/.editorconfig +0 -8
  42. package/assets/templates/hygiene/.gitattributes +0 -3
  43. package/assets/templates/hygiene/CHANGELOG.md +0 -14
  44. package/assets/templates/hygiene/CONTRIBUTING.md +0 -3
  45. package/assets/templates/hygiene/LICENSE +0 -21
  46. package/assets/templates/hygiene/README.md +0 -3
  47. package/assets/templates/issue-update.md +0 -6
  48. package/assets/templates/plan-template.md +0 -27
  49. package/assets/templates/spec-template.md +0 -51
  50. package/assets/templates/superpowers-doc-contract.md +0 -75
  51. package/rules/ask-question-only.mdc +0 -49
  52. package/rules/cursor-todowrite.mdc +0 -14
  53. package/rules/no-worktrees.mdc +0 -26
  54. package/rules/sdd-docs-path.mdc +0 -22
  55. package/skills/wk-changelog/SKILL.md +0 -75
  56. package/skills/wk-commit/SKILL.md +0 -657
  57. package/skills/wk-docs-refresh/SKILL.md +0 -41
  58. package/skills/wk-handoff/SKILL.md +0 -55
  59. package/skills/wk-implement/SKILL.md +0 -44
  60. package/skills/wk-init/SKILL.md +0 -107
  61. package/skills/wk-issue-update/SKILL.md +0 -101
  62. package/skills/wk-issue-update/references/youtrack-update-style.md +0 -81
  63. package/skills/wk-meetings/SKILL.md +0 -50
  64. package/skills/wk-pr/SKILL.md +0 -90
  65. package/skills/wk-release-notes/SKILL.md +0 -57
  66. package/skills/wk-status/SKILL.md +0 -85
  67. package/skills/wk-verify/SKILL.md +0 -48
  68. package/vendor/superpowers/skills/brainstorming/SKILL.md +0 -159
  69. package/vendor/superpowers/skills/brainstorming/scripts/frame-template.html +0 -213
  70. package/vendor/superpowers/skills/brainstorming/scripts/helper.js +0 -167
  71. package/vendor/superpowers/skills/brainstorming/scripts/server.cjs +0 -723
  72. package/vendor/superpowers/skills/brainstorming/spec-document-reviewer-prompt.md +0 -49
  73. package/vendor/superpowers/skills/brainstorming/visual-companion.md +0 -222
  74. package/vendor/superpowers/skills/dispatching-parallel-agents/SKILL.md +0 -185
  75. package/vendor/superpowers/skills/executing-plans/SKILL.md +0 -70
  76. package/vendor/superpowers/skills/finishing-a-development-branch/SKILL.md +0 -241
  77. package/vendor/superpowers/skills/receiving-code-review/SKILL.md +0 -213
  78. package/vendor/superpowers/skills/requesting-code-review/SKILL.md +0 -103
  79. package/vendor/superpowers/skills/requesting-code-review/code-reviewer.md +0 -172
  80. package/vendor/superpowers/skills/subagent-driven-development/SKILL.md +0 -426
  81. package/vendor/superpowers/skills/subagent-driven-development/implementer-prompt.md +0 -139
  82. package/vendor/superpowers/skills/subagent-driven-development/task-reviewer-prompt.md +0 -188
  83. package/vendor/superpowers/skills/systematic-debugging/CREATION-LOG.md +0 -119
  84. package/vendor/superpowers/skills/systematic-debugging/SKILL.md +0 -296
  85. package/vendor/superpowers/skills/systematic-debugging/condition-based-waiting-example.ts +0 -158
  86. package/vendor/superpowers/skills/systematic-debugging/condition-based-waiting.md +0 -115
  87. package/vendor/superpowers/skills/systematic-debugging/defense-in-depth.md +0 -122
  88. package/vendor/superpowers/skills/systematic-debugging/root-cause-tracing.md +0 -169
  89. package/vendor/superpowers/skills/systematic-debugging/test-academic.md +0 -14
  90. package/vendor/superpowers/skills/systematic-debugging/test-pressure-1.md +0 -58
  91. package/vendor/superpowers/skills/systematic-debugging/test-pressure-2.md +0 -68
  92. package/vendor/superpowers/skills/systematic-debugging/test-pressure-3.md +0 -69
  93. package/vendor/superpowers/skills/test-driven-development/SKILL.md +0 -371
  94. package/vendor/superpowers/skills/test-driven-development/testing-anti-patterns.md +0 -299
  95. package/vendor/superpowers/skills/using-git-worktrees/SKILL.md +0 -202
  96. package/vendor/superpowers/skills/using-superpowers/SKILL.md +0 -62
  97. package/vendor/superpowers/skills/using-superpowers/references/antigravity-tools.md +0 -23
  98. package/vendor/superpowers/skills/using-superpowers/references/codex-tools.md +0 -39
  99. package/vendor/superpowers/skills/using-superpowers/references/pi-tools.md +0 -16
  100. package/vendor/superpowers/skills/verification-before-completion/SKILL.md +0 -139
  101. package/vendor/superpowers/skills/writing-plans/SKILL.md +0 -174
  102. package/vendor/superpowers/skills/writing-plans/plan-document-reviewer-prompt.md +0 -49
  103. package/vendor/superpowers/skills/writing-skills/SKILL.md +0 -689
  104. package/vendor/superpowers/skills/writing-skills/anthropic-best-practices.md +0 -1150
  105. package/vendor/superpowers/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +0 -189
  106. package/vendor/superpowers/skills/writing-skills/graphviz-conventions.dot +0 -172
  107. package/vendor/superpowers/skills/writing-skills/persuasion-principles.md +0 -187
  108. package/vendor/superpowers/skills/writing-skills/testing-skills-with-subagents.md +0 -384
@@ -1,55 +0,0 @@
1
- ---
2
- name: wk-handoff
3
- description: Emit copy-paste implementation prompt for a new chat via workit_handoff_prompt. Explicit /wk-handoff only.
4
- disable-model-invocation: true
5
- ---
6
-
7
- # Handoff
8
-
9
- Emit a copy-paste prompt for a **new** implementation chat.
10
-
11
- ## Step 1 — Gather facts (required)
12
-
13
- Call MCP tool `workit_handoff_prompt` with the **full** user message as `message`.
14
-
15
- **Repository calls:** For every repository-scoped `workit_*` call, pass the active Cursor workspace as `workspace_root`; never rely on the MCP process default.
16
-
17
- **Thread context:** If this thread has a known spec/plan pair (from brainstorming, writing-plans, or open files), append both paths to `message` even when the user only typed `/wk-handoff`. Without explicit paths, the tool picks the **most recently touched** linked pair under `docs/<slug>/` (plan `**Spec:**` link + file mtimes) — not “only one file in the folder.”
18
-
19
- Use the tool return value as ground truth. Do not read git, run npm, or infer repo state yourself.
20
- If the tool errors, report the error and stop.
21
-
22
- The pasted prompt includes instructions to call `workit_sdd_context`, **Cursor TodoWrite** (with returned `todos`), and `workit_plan_tasks` in Chat B before Task 1. SDD artifacts go to `docs/<slug>/sdd/` — never `.superpowers/sdd`. TodoWrite is required for the native Cursor task list UI (remaining/completed); the SDD ledger is persistence only. The fenced `prompt` does not contain `section_text`. **Branch** is resolved automatically in the prompt (from spec/plan or derived as `feature/*` / `bugfix/*`). **No worktrees** — Chat B uses `workit_resolve_branch` + `workit_branch_setup` in-place. Commits use workit **/wk-commit** skill — no separate commit-policy field.
23
-
24
- `workit_handoff_prompt` also returns `tasks[]`, `branch`, `sdd_dir`, `completed_task_ids`, and `todos` for same-session MCP use — not copy-paste transport.
25
-
26
- A destination run that executes the plan must still end with `workit_plan_complete` once the SDD ledger is complete and repository verification passes, and never finish the run while the plan is still `active`.
27
-
28
- ## Output (success)
29
-
30
- When the tool returns `{ prompt }`, output **only** one fenced code block containing `prompt` verbatim. No preamble, no explanation outside the fence.
31
-
32
- ## Output (failure)
33
-
34
- When the tool returns `{ error }` (and optional `candidates`):
35
-
36
- - Plain text only — **no fenced block**
37
- - State the error clearly
38
- - If multiple specs or plans exist, list candidate paths from `candidates`
39
- - Instruct the user to re-run with explicit paths in the message:
40
-
41
- ```text
42
- /wk-handoff
43
- docs/my-feature/spec.md
44
- docs/my-feature/plan.md
45
- ```
46
-
47
- Example:
48
-
49
- ```text
50
- Could not resolve spec and plan. Mention both paths in your message, or ensure the newest plan links to its spec via **Spec:**.
51
- Re-run with paths from this thread, e.g.:
52
- /wk-handoff
53
- docs/<slug>/spec.md
54
- docs/<slug>/plan.md
55
- ```
@@ -1,44 +0,0 @@
1
- ---
2
- name: wk-implement
3
- description: Execute an approved Superpowers plan on Cursor as the coordinator session (inline only). subagent-driven is unsupported on Cursor and the MCP rejects that menu choice. Use for /wk-implement or "implement from plan".
4
- disable-model-invocation: true
5
- ---
6
-
7
- # Implement
8
-
9
- Execute the plan **inline in this coordinator session**. subagent-driven execution is unsupported on Cursor: the MCP rejects the subagent-driven menu choice (`unsupported_mode`) — Cursor has no child sessions. Plan-level edits stay coordinator-gated.
10
-
11
- ## Step 1 — Gather facts (required)
12
-
13
- Call MCP tool `workit_plan_tasks` with `plan_path` from the user's message and `spec_path` when known.
14
-
15
- **Repository calls:** For every repository-scoped `workit_*` call, pass the active Cursor workspace as `workspace_root`; never rely on the MCP process default.
16
-
17
- Use the returned `tasks[]` as ground truth. Cache each `section_text` for subagent prompts. Do not read the plan file for task text.
18
-
19
- ## Step 2 — Load execution contract
20
-
21
- Resolve plugin root: `WORKFLOW_TOOLKIT_ROOT` env or `~/.cursor/plugins/local/workit/`.
22
-
23
- Load `templates/execution-contract.md`. Substitute `<SPEC_PATH>`, `<PLAN_PATH>`, `<BRANCH>`, `<SDD_DIR>`, `<TASK_LIST>` from MCP. OMIT the `## Handoff destination` section and its `<workflow-handoff-destination>` marker line — that section is only for sessions started from a `workit_handoff_prompt` destination prompt. This inline executor is NOT a destination and must never present itself as one (five-choice source menu, Handoff still available). If template missing, stop with error.
24
-
25
- ## Step 3 — Follow contract
26
-
27
- Announce: "Using implement + inline."
28
-
29
- **Before Task 1 — validate + SDD + TodoWrite UI + branch (no worktrees):**
30
-
31
- 0. `workit_docs_validate` with spec + plan paths — hard-fail before any SDD mutation
32
- 1. `workit_sdd_context` with `plan_path` — cache `sdd_dir`, `completed_task_ids`, **`todos`**
33
- 2. **TodoWrite** with `todos` from step 1 (`merge: false`) — required for Cursor native task list UI (SDD is not a UI substitute)
34
- 3. `workit_resolve_branch` with spec + plan paths
35
- 4. If `needs_checkout` and `dirty` → native **AskQuestion** asks whether to stash before checkout
36
- 5. `workit_branch_setup` with `target_branch`, `stash`, `sdd_dir` from step 1
37
-
38
- Follow the contract verbatim. Keep TodoWrite `in_progress`/`completed` in sync each task. At verify/commit phase use `workit_verify` and `workit_git_context` MCP tools.
39
-
40
- Each task lands exactly one contiguous non-empty commit range (`base..head`): fix rounds append commits to that range and never rewrite/amend an active review range; each progress line records the task's real base..head shas.
41
-
42
- Do not emit a handoff fence — this is in-session execution.
43
-
44
- **Mandatory:** end the run by calling MCP `workit_plan_complete` after the final task once the SDD ledger is complete (all task IDs appended) and `workit_verify` passes — a complete ledger and green verification are the tool's gates. Never finish the run while the plan is still `active`.
@@ -1,107 +0,0 @@
1
- ---
2
- name: wk-init
3
- description: One-time workit setup — MCP deps, YouTrack, and VCS (GitLab/GitHub) config. Tokens edited locally only. Use /wk-init.
4
- disable-model-invocation: true
5
- ---
6
-
7
- # Init
8
-
9
- Scaffold config via MCP. **Never paste API tokens in chat.**
10
-
11
- **Agent language:** English unless the user writes in another language.
12
-
13
- ## Step 1 — Status (required)
14
-
15
- Call MCP `workit_init_status`. Show `items[]` in English.
16
-
17
- ### YouTrack settings (when `youtrack_config` present)
18
-
19
- | Setting | Value |
20
- |---------|-------|
21
- | Config file | clickable `config_edit_path` |
22
- | Base URL | `baseUrl` |
23
- | Meeting issue | `meetingIssue` + `meetingIssueUrl` |
24
- | Manager mention | `defaultMention` |
25
- | Timezone / locale | `timezone` / `locale` |
26
- | Meeting time | `/wk-meetings` |
27
- | Task updates | `/wk-issue-update` |
28
-
29
- ### VCS / PR settings (when `vcs_config` present)
30
-
31
- | Setting | Value |
32
- |---------|-------|
33
- | Config file | `config_edit_path` → `vcs.json` |
34
- | Provider | `provider` (`gitlab` or `github`) |
35
- | Target branch | `defaultTargetBranch` (usually `develop`) |
36
- | PR skill | `/wk-pr` |
37
- | Squash on merge | `pr.squashOnMerge` |
38
- | Remove source branch | `pr.removeSourceBranch` (default `true`) |
39
- | Switch provider | `switchHint` |
40
-
41
- ## Step 2 — Apply missing pieces
42
-
43
- ### mcp_deps
44
-
45
- Native `AskQuestion` asks whether to install MCP dependencies → on yes: `workit_init_apply` action=`npm_install` confirmed=`true`
46
-
47
- ### YouTrack scaffold
48
-
49
- Native `AskQuestion` asks whether to create the YouTrack scaffold → on yes: `workit_init_apply` action=`youtrack_scaffold` confirmed=`true`
50
-
51
- ### VCS scaffold (GitLab + GitHub token files)
52
-
53
- Only when `items[vcs_json].ok` is **false**:
54
-
55
- 1. Native `AskQuestion` asks for GitLab or GitHub → remember `provider` (`gitlab` | `github`).
56
- 2. Native `AskQuestion` asks `Create vcs.json and token placeholders for <provider>?`
57
- → on yes: `workit_init_apply` action=`vcs_scaffold` confirmed=`true` **`vcs_provider=<chosen provider>`**
58
-
59
- Both `gitlab.token` and `github.token` are always created (switch later by editing `provider` in `vcs.json`). Tell the user which token file is **active** for `/wk-pr` based on the chosen provider.
60
-
61
- Optional: `vcs_target_branch` if user states a non-`develop` default.
62
-
63
- ## Step 3 — User edits tokens (outside chat)
64
-
65
- ### YouTrack
66
-
67
- Show from `youtrack_config.tokenCreate` or `items[youtrack_token]`:
68
-
69
- | Field | Source |
70
- |-------|--------|
71
- | Create token (click) | `token_create_url` — opens Profile → **Account Security** (Tokens section) |
72
- | Paste token into | `token_edit_path` on `youtrack_token` item |
73
- | Prefilled name | `token_name` → `workit` |
74
- | Scope | `token_scopes` → `YouTrack` only |
75
-
76
- YouTrack does **not** support URL prefill for name/scopes — after the link opens, click **New token** and enter name + scope manually (`token_create_steps` if present).
77
-
78
- 1. [Create YouTrack token](<token_create_url>) → **New token** → name **workit**, scope **YouTrack** → **Create token**
79
- 2. Copy token → open [youtrack.token](<token_edit_path>) → replace `YOUR_TOKEN_HERE` → save
80
- 3. **`/wk-status`**
81
-
82
- ### VCS (active provider)
83
-
84
- For the **active** provider (`vcs_config.provider`), show from `vcs_config.tokenCreate` or `items[gitlab_token|github_token].token_create_url`:
85
-
86
- | Field | Source |
87
- |-------|--------|
88
- | Create token (click) | `token_create_url` — opens provider form with **name**, **description**, and **scopes/permissions** prefilled |
89
- | GitHub classic fallback | `token_create_url_classic` on `github_token` item only |
90
- | Paste token into | `token_edit_path` on the active provider item |
91
- | Prefilled name | `workit` |
92
- | GitLab scopes | `api` |
93
- | GitHub permissions | `pull_requests:write`, `contents:write`, `metadata:read` |
94
-
95
- **Active provider (gitlab example):**
96
-
97
- 1. [Create GitLab token](<token_create_url>) — form opens with name/scopes filled → click **Create**
98
- 2. Copy token → open [gitlab.token](<token_edit_path>) → replace `YOUR_TOKEN_HERE` → save
99
- 3. **`/wk-status`**
100
-
101
- **Inactive provider:** show `vcs_config.tokenCreateUrls.<other>` link for later; only the active token file is required now.
102
-
103
- ## Rules
104
-
105
- - Never ask for or accept tokens in chat.
106
- - Mutations only via `workit_init_apply` with `confirmed: true`.
107
- - Verification is **`/wk-status`** only — not part of init.
@@ -1,101 +0,0 @@
1
- ---
2
- name: wk-issue-update
3
- description: Draft and post ES-CL YouTrack task update with time tracking via MCP only. Use /wk-issue-update.
4
- disable-model-invocation: true
5
- ---
6
-
7
- # Issue Update — time + ES-CL comment
8
-
9
- Post a Spanish comment and log time on a **task** issue (not the meeting issue).
10
-
11
- **Agent language:** English unless the user writes in another language. **Comment body:** Spanish (`es-CL`) only.
12
-
13
- **Style contract:** Read [references/youtrack-update-style.md](references/youtrack-update-style.md) before every draft or polish pass. Output should read like the user's ChatGPT revision thread — **their voice, manager-friendly**, not an agent status report.
14
-
15
- **Audience:** @Alejandra.Flores — not a developer. Clarify technical terms in plain language when they appear.
16
-
17
- **Repository calls:** For every repository-scoped `workit_*` call, pass the active Cursor workspace as `workspace_root`; never rely on the MCP process default.
18
-
19
- ## Step 0 — Toolkit ready
20
-
21
- If unsure, call `workit_status`. Stop if `ready: false`.
22
-
23
- ## Step 1 — Issue (required)
24
-
25
- **Always** confirm which YouTrack issue this update is for.
26
-
27
- 1. If the user did **not** already paste a YouTrack URL or issue id (`NSR-40`) in the message that started this flow, ask:
28
- > Paste the YouTrack issue URL or id for this update (e.g. `https://…/issue/NSR-40` or `NSR-40`).
29
- 2. Wait for their reply. Do **not** guess from spec/plan unless they explicitly say to use the plan's issue.
30
- 3. Call `workit_youtrack_parse_issue` with `issue_ref` = what they pasted.
31
- 4. On error, ask again with the parse error. On success, note `issueId`.
32
-
33
- ## Step 2 — Context (required)
34
-
35
- Call `workit_youtrack_context` with `issue_id` from Step 1 (or `issue_url` / `issue_ref` directly). Stop on error.
36
-
37
- Show the resolved issue once in chat: `Updating **{issueId}**` (+ `issueUrl` if returned).
38
-
39
- ## Step 3 — How to start (required)
40
-
41
- Use native `AskQuestion`: title `Draft mode`; prompt `How should we start the YouTrack update?`; options `I have notes` (recommended), `Help me remember`, and `Draft for me`.
42
-
43
- ### Mode `paste` — I have notes (Recommended)
44
-
45
- Ask user to paste rough notes, half-written update, or bullets. Skip to Step 5.
46
-
47
- ### Mode `remind` — Help me remember
48
-
49
- 1. Optionally call `workit_git_context` (and read spec/plan title) **only to remind the user in English chat** — short prose: what repo, branch, themes of commits, not a pasteable comment.
50
- 2. Ask conversational follow-ups: *¿Qué te costó más? ¿Qué queda para mañana? ¿Algo bloqueado?*
51
- 3. User replies in their words (Spanish messy notes OK).
52
- 4. Treat their reply as the draft → Step 5.
53
-
54
- **Never** post git context or commit list directly to YouTrack.
55
-
56
- ### Mode `auto` — Draft for me to edit
57
-
58
- 1. Use `workit_git_context` + conversation context to infer what they likely worked on.
59
- 2. Write a **first draft in Spanish** per **youtrack-update-style.md** (paragraphs, manager-friendly, no file paths).
60
- 3. Show draft in a fenced block. Ask user to correct, add, or replace — user may reply with a full rewrite.
61
- 4. Use their corrected version as input → Step 5.
62
-
63
- ## Step 4 — Duration
64
-
65
- Ask time spent on this task issue. User text → `workit_youtrack_parse_duration`. **Do not compute minutes yourself.**
66
-
67
- ## Step 5 — Polish (ChatGPT pass)
68
-
69
- Polish the approved draft per **youtrack-update-style.md**:
70
-
71
- - Paragraphs, not PR bullets
72
- - Technical terms get a short plain-language gloss for the manager
73
- - Keep `# Actualización` + greeting — if user already included them, do not duplicate `@Alejandra.Flores`
74
- - `## Off-topic` only if user's material has a clear tangent section
75
-
76
- Call `workit_youtrack_draft` with:
77
-
78
- - `issueId` from Step 1
79
- - `userNotes` = polished **body only** (no `# Actualización`, no greeting line)
80
- - `greeting` from context
81
- - **Do not pass** `projectName`, `facts`, `includeProjectOpener`, or `includeFacts`
82
-
83
- ## Step 6 — Review
84
-
85
- Show returned `markdown` in a fenced block. User may edit in chat (apply edits and re-show if they change wording).
86
-
87
- ## Step 7 — Post
88
-
89
- Use native `AskQuestion`: title `Post to YouTrack`; prompt `Post this reviewed update to YouTrack and log the approved time?`; options `Post and log time` and `Cancel`. On confirm:
90
-
91
- `workit_youtrack_post` with `confirmed: true`, `issueId`, `markdown`, `minutes`. **Do not pass `date`.**
92
-
93
- If the result has `partial: true`, the comment already posted. Report the time-log failure and retry only with `workit_youtrack_log_time` using the same `issueId` and `minutes`; never call `workit_youtrack_post` again.
94
-
95
- ## Rules
96
-
97
- - Never call YouTrack HTTP directly.
98
- - Never post without `confirmed: true`.
99
- - Never skip Step 1 — each run targets the issue the user names.
100
- - If it sounds robotic, remove structure you added and re-read the style reference.
101
- - End state is always: **user reviewed → post + log time**.
@@ -1,81 +0,0 @@
1
- # YouTrack update style (Cristhofer / es-CL)
2
-
3
- Use when writing or polishing the comment body before `workit_youtrack_draft`. **Preserve the author's voice** — like the ChatGPT revision thread: grammar, flow, and light structure, not a changelog.
4
-
5
- ## Audience
6
-
7
- **@Alejandra.Flores is the primary reader — she is not a developer.** Write for a technical project manager:
8
-
9
- - Lead with **what you worked on and why it mattered**, not implementation mechanics.
10
- - If you mention something technical (OpenAPI, flags, component names, GUAS, MFE), add **one short plain-language clause** so the reader understands impact without knowing the stack.
11
- - Prefer product/feature language: *data sources*, *integración con el backend*, *selector de color*, *vista del segundo factor*.
12
-
13
- ### Technical detail — clarify, don't drop
14
-
15
- | Too dev (avoid alone) | Better for manager |
16
- |-----------------------|-------------------|
17
- | overlays fuera del shadow DOM en el host | el selector de color no se veía bien cuando el reporte está embebido en la web principal |
18
- | `replaceUrl: true` en el interceptor | para que al volver atrás no se repitiera el mismo error en bucle |
19
- | Migré a `daisy-overlay-tokens` | ajusté los estilos del overlay para que respeten el tema de la web |
20
-
21
- Only include dev terms the user actually brought up — then **translate or contextualize** in the same breath.
22
-
23
- ## Shape
24
-
25
- 1. `# Actualización` (single H1)
26
- 2. Blank line
27
- 3. `@Alejandra.Flores` + greeting (`Hola, buenos días.` / `Hola, buenas tardes.`) — same line or next paragraph OK
28
- 4. **Body: paragraphs**, not bullet dumps
29
-
30
- Optional second H1 when the user has a long tangent block:
31
-
32
- - `## Off-topic` — only when the user's material is clearly a side topic (tooling, proceso, ideas). Keep the main work under `# Actualización`.
33
-
34
- ## Openers (only if the user's material implies it)
35
-
36
- - `Hoy estuve trabajando en…` / `Hoy por la tarde he estado full con…`
37
- - `Hoy estuve full con <proyecto>.`
38
- - `Dado lo que conversamos,…`
39
-
40
- Do **not** force an opener.
41
-
42
- ## Voice
43
-
44
- - First person, Chilean Spanish: *harto*, *darle una vuelta*, *al día*, *trasteando*, *ojalá*.
45
- - Honest: *al parecer*, *creo que*, *imagino que*, *no alcancé a*, *entiendo que*.
46
- - Explain **why** and **what's next**, not file trees.
47
- - Close with forward look when relevant: *Mañana…*, *me falta…*, *de momento va bien*.
48
-
49
- ## Tangents
50
-
51
- Natural bridges: `Por otro lado,…`, `Como comentario adicional,…`, `Como punto aparte,…`, `Quiero comentar algo que puede ser interesante.`
52
-
53
- Long tooling/process tangents → `## Off-topic` (exemplar 4).
54
-
55
- ## Allowed formatting
56
-
57
- - Backticks for product/component names the user mentioned: `` `color-picker` ``, `` `button` ``
58
- - Links and screenshots the user attached
59
- - Short inline lists **only** when comparing options the manager needs to understand (exemplar 4: OpenAPI vs backend vs frontend) — as **prose or one flowing sentence**, not a task checklist
60
-
61
- ## Forbidden (unless user wrote them verbatim)
62
-
63
- - Branch names, SHAs, `src/...` paths
64
- - Nested `###` subsections for work items
65
- - Bullet lists of completed tasks (PR style)
66
- - Stacked changelog verbs: *Implementé*, *Migré*, *Alineé*
67
- - Invented work or metrics
68
- - Pasting `git log`, agent session, or `facts.*` into the comment
69
- - Jargon without a plain-language gloss
70
-
71
- ## Polish level (ChatGPT-thread)
72
-
73
- 1. Grammar and spelling.
74
- 2. Smooth sentences; similar length to input.
75
- 3. Split wall-of-text into paragraphs; add bridges only when needed.
76
- 4. **Do not** add facts the user did not supply.
77
- 5. **Do** add a brief gloss when the user used opaque tech terms.
78
-
79
- ## Length
80
-
81
- Match the user. Never pad.
@@ -1,50 +0,0 @@
1
- ---
2
- name: wk-meetings
3
- description: Log meeting time only via workit MCP — general (IRPT-12) or web (NSXFT-21). No comments. Use /wk-meetings.
4
- disable-model-invocation: true
5
- ---
6
-
7
- # Meetings — time only
8
-
9
- Log meeting time to a **meeting issue** from config. **Never post a comment.**
10
-
11
- **Agent language:** English unless the user writes in another language.
12
-
13
- ## Step 0 — Toolkit ready
14
-
15
- If unsure, call `workit_status`. Stop if `ready: false`.
16
-
17
- ## Step 1 — Context (required)
18
-
19
- Call MCP `workit_youtrack_context` with `mode: "meetings"` (no `issue_id` yet). Stop on error.
20
-
21
- ## Step 2 — Pick meeting type (required)
22
-
23
- Use native **AskQuestion** with `meetingOptions` from context:
24
-
25
- - Title: `Meeting type`
26
- - Prompt: `Where should this time be logged?`
27
- - Options: one `id:label` pair per option — use `key` as id, `label` as label (include issue id in label, e.g. `IRPT-12 — General meetings`)
28
-
29
- → **AskQuestion** → map selected `key` to `issue` and `workItemText` from `meetingOptions`.
30
-
31
- ## Step 3 — Duration
32
-
33
- Ask how much meeting time today (English UI). User text → `workit_youtrack_parse_duration`. **Do not compute minutes yourself.**
34
-
35
- ## Step 4 — Preview + confirm
36
-
37
- Show preview: chosen issue, label, minutes, work-item text.
38
-
39
- Use native **AskQuestion** to confirm logging the shown meeting time; on yes:
40
-
41
- ## Step 5 — Log time only
42
-
43
- Call `workit_youtrack_log_time` with `issueId`, `minutes`, `text` (from `workItemText`). **Do not pass `date`** — tool uses epoch ms automatically.
44
-
45
- **Never** call `workit_youtrack_post` from this skill.
46
-
47
- ## Rules
48
-
49
- - Tools only — no direct YouTrack HTTP.
50
- - No comment on meeting issues.
@@ -1,90 +0,0 @@
1
- ---
2
- name: wk-pr
3
- description: Draft or create PR/MR via workit_pr_context + glab/gh. Squash on merge + delete source branch. Use /wk-pr.
4
- ---
5
-
6
- # PR — Draft or Create
7
-
8
- Draft a merge request / pull request body, or create it on GitLab (`glab`) / GitHub (`gh`) using `~/.config/workit/vcs.json`.
9
-
10
- **Setup:** `/wk-init` → pick provider → VCS scaffold → edit active token file.
11
-
12
- **Active provider:** read `vcs_config.provider` from `workit_pr_context` (or `provider` in `~/.config/workit/vcs.json`). That decides `glab` vs `gh`.
13
-
14
- ## Step 1 — Gather facts (required)
15
-
16
- Call MCP `workit_pr_context` with **no `range` argument** unless the user supplied an explicit git range string.
17
-
18
- **Repository calls:** For every repository-scoped `workit_*` call, pass the active Cursor workspace as `workspace_root`; never rely on the MCP process default.
19
-
20
- On `feature/*` or `bugfix/*`, the tool compares **only against `develop`** (never `main`).
21
-
22
- Use the tool return as ground truth. Pay attention to:
23
-
24
- - `body_style_rules` and `merged_pr_style.examples` — match your recent merged MRs
25
- - `vcs_config` — provider, `defaultTargetBranch`, `pr.squashOnMerge`, `pr.removeSourceBranch`
26
- - `commits`, `diff_stat`, `files` — **for drafting only**, never paste into the published body
27
-
28
- ## Step 2 — Draft body (required)
29
-
30
- Write title + body per rules below. Read `merged_pr_style` if present.
31
-
32
- ### Body rules (from your merged MRs)
33
-
34
- **Include:**
35
-
36
- - `## Summary` — short outcome bullets (what changed for the user/reviewer)
37
- - `## Validation` or `## Test plan` — only checks you actually ran (`[x]` when done)
38
-
39
- **Never include:**
40
-
41
- - `## Notes` with branch names, `develop..HEAD`, commit counts, or file counts
42
- - Commit log, `diff_stat`, or changed-files list
43
- - Git sync warnings, `range_mode`, or agent meta
44
- - Long nested `###` sections duplicating the diff
45
- - Scope disclaimers ("scoped to branch X…") unless the user explicitly asks
46
-
47
- Title: Conventional Commits — `type(scope): subject`, imperative, lowercase, no trailing period.
48
-
49
- ## Step 3 — Review (show before confirm)
50
-
51
- Show:
52
-
53
- ```md
54
- Title:
55
- <copy-paste title>
56
-
57
- Body:
58
- <copy-paste body>
59
- ```
60
-
61
- ## Step 4 — Create (optional)
62
-
63
- Use native `AskQuestion`: title `Create MR/PR`; prompt `Create the reviewed MR/PR now?`; options `Create` and `Cancel`. On `Create`:
64
-
65
- `workit_pr_create` with `confirmed: true`, `title`, `body`, optional `target_branch` (defaults from vcs.json).
66
-
67
- **On failure:** show the tool `error` / `stderr` / `hint` and stop. **Never** fall back to running `glab` or `gh` in the shell — creation must go through `workit_pr_create` only.
68
-
69
- Creation uses vcs.json flags (both default `true`):
70
-
71
- - **squash on merge** — single commit when you merge in GitLab/GitHub UI
72
- - **remove source branch** — branch deleted after merge (clean `develop`, no stale `feature/*`)
73
- - **push branch** — pushes current branch before create
74
-
75
- GitLab: `glab mr create` with `-t`, `-d` (required in non-interactive mode), `--squash-before-merge`, `--remove-source-branch`
76
- GitHub: use **Squash and merge** + **Delete branch** in the UI (or `gh pr merge --squash --delete-branch`); create step sets title/body only.
77
-
78
- ## Branch policy (tool-enforced)
79
-
80
- | Current branch | `/wk-pr` without args |
81
- | -------------- | --------------------- |
82
- | `feature/*`, `bugfix/*` | OK — base `develop` |
83
- | protected branches | Error |
84
-
85
- ## Rules
86
-
87
- - Do not edit product files in this skill (except user asks to fix PR template).
88
- - Never paste VCS tokens in chat.
89
- - **Never run `glab` or `gh` directly** — only `workit_pr_create`.
90
- - Do not claim validation passed unless evidence exists.
@@ -1,57 +0,0 @@
1
- ---
2
- name: wk-release-notes
3
- description: Draft release notes via workit_release_notes_context. Use for /wk-release-notes or "draft release notes".
4
- ---
5
-
6
- # Release Notes — User-Facing Release Notes
7
-
8
- Draft release notes for a given release, version, tag, or commit range.
9
-
10
- ## Step 1 — Gather facts (required)
11
-
12
- If the user did not provide an exact tag, version, or commit range, ask for it before calling the tool.
13
-
14
- Call MCP tool `workit_release_notes_context` with arguments from the user's message (range, version, paths, etc.).
15
-
16
- **Repository calls:** For every repository-scoped `workit_*` call, pass the active Cursor workspace as `workspace_root`; never rely on the MCP process default.
17
-
18
- Use the tool return value as ground truth. Do not read git, run npm, or infer repo state yourself.
19
- If the tool errors, report the error and stop.
20
-
21
- Pass tag or range strings as `range_or_tag`.
22
-
23
- ## Rules
24
-
25
- - Do not edit files unless the user explicitly asks for an edit target.
26
- - Do not create or publish a release.
27
- - Write for users, not maintainers.
28
- - Mention features, behavior changes, fixes, migration notes, installation/update notes, and known issues when supported by context.
29
- - Do not mention CI, tests, refactors, formatting, dependency bumps, or internal tooling unless they directly affect users.
30
- - If the requested release/range is missing or ambiguous, ask for the exact tag, version, or commit range.
31
- - If there are no user-facing changes, say that directly.
32
-
33
- ## Output
34
-
35
- Return only:
36
-
37
- ```md
38
- # <Release title>
39
-
40
- ## Highlights
41
-
42
- - ...
43
-
44
- ## Fixes
45
-
46
- - ...
47
-
48
- ## Upgrade Notes
49
-
50
- - ...
51
-
52
- ## Known Issues
53
-
54
- - ...
55
- ```
56
-
57
- Omit empty sections except `Highlights`. If `Highlights` would be empty, output a short note explaining why.
@@ -1,85 +0,0 @@
1
- ---
2
- name: wk-status
3
- description: Full workit health check — MCP deps, YouTrack + VCS (GitLab/GitHub) API verify. Use /wk-status after editing token files.
4
- disable-model-invocation: true
5
- ---
6
-
7
- # Status
8
-
9
- Deterministic health check. **Tools only — no manual git/curl.**
10
-
11
- **Agent language:** English unless the user writes in another language.
12
-
13
- ## Step 1 — Full status (required)
14
-
15
- Call MCP `workit_status` once.
16
-
17
- Use the return value as ground truth. Do not infer state yourself.
18
-
19
- ## Step 2 — Report (English)
20
-
21
- Show a table from `items[]`:
22
-
23
- | Item | OK | Notes |
24
- | -------------------- | ------------------------ | ---------------------------------- |
25
- | MCP npm dependencies | items[mcp_deps].ok | path |
26
- | YouTrack config | items[youtrack_json].ok | path |
27
- | YouTrack token file | items[youtrack_token].ok | placeholder? → show `token_create_url` + `token_edit_path` |
28
- | VCS config | items[vcs_json].ok | path |
29
- | GitLab token | items[gitlab_token].ok | required when provider=gitlab |
30
- | GitHub token | items[github_token].ok | required when provider=github |
31
-
32
- ### YouTrack settings (required when `youtrack_config` present)
33
-
34
- Always show this block from tool output — user expects to see meeting issue and time-logging targets:
35
-
36
- | Setting | Value |
37
- |---------|-------|
38
- | Config file | clickable `youtrack_config.config_edit_path` |
39
- | Meeting issue | `meetingIssue` — time only via `/wk-meetings` |
40
- | Meeting URL | `meetingIssueUrl` as markdown link |
41
- | Manager tag | `@` + `defaultMention` |
42
- | Task issue (time + comment) | from active spec/plan `**YouTrack:**` — not stored in json |
43
- | Timezone | `timezone` |
44
-
45
- Then **YouTrack API** from `youtrack_verify`:
46
-
47
- - `ok: true` → show `login`, `name`, `meetingIssue`, `meetingIssueSummary` if present
48
- - `ok: false` → show `error` and `next_step` from tool
49
-
50
- ### VCS / PR settings (when `vcs_config` present)
51
-
52
- | Setting | Value |
53
- |---------|-------|
54
- | Config | `vcs_config.config_edit_path` |
55
- | Provider | `provider` (`gitlab` / `github`) |
56
- | Target branch | `defaultTargetBranch` |
57
- | Squash on merge | `pr.squashOnMerge` |
58
- | Remove source branch | `pr.removeSourceBranch` |
59
-
60
- **VCS API** from `vcs_verify`:
61
-
62
- - `ok: true` → show `username`, `provider`
63
- - `ok: false` → show `vcs_token_edit_path` or token `fix` from items when placeholder
64
-
65
- ## Step 3 — Verdict
66
-
67
- - `ready: true` → "All checks passed. Toolkit is ready."
68
- - `ready: false` with `placeholder: true` on **YouTrack** → show both links:
69
-
70
- ```markdown
71
- 1. [Create YouTrack token](<token_create_url>) — New token → name **workit**, scope **YouTrack**
72
- 2. Paste into [youtrack.token](<token_edit_path>) — replace `YOUR_TOKEN_HERE`, save, then `/wk-status`
73
- ```
74
-
75
- Use `items[youtrack_token].token_create_url` / `token_edit_path`, or top-level `token_create_url` + `token_edit_path` from tool output.
76
-
77
- - `ready: false` with VCS placeholder → show **`vcs_token_edit_path`** and active provider `token_create_url` from items.
78
-
79
- - `ready: false` (other) → show `next_step` and `youtrack_verify.error` from tool output.
80
-
81
- ## Rules
82
-
83
- - Do not call YouTrack HTTP directly — `workit_status` includes verify.
84
- - Do not ask user to paste token — point them to edit the token file if `placeholder: true`.
85
- - Optional: `workit_youtrack_verify_token` only if user asks to re-test API alone.