@brainervirus/workit-cursor 0.11.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.
- package/.cursor-plugin/plugin.json +6 -6
- package/README.md +27 -31
- package/assets/templates/workit-contract.md +12 -0
- package/commands/wk-babysit.md +7 -0
- package/commands/wk-blast-radius.md +7 -0
- package/commands/wk-challenge.md +7 -0
- package/commands/wk-debug.md +7 -0
- package/commands/wk-deslop.md +7 -0
- package/commands/wk-diagram.md +7 -0
- package/commands/wk-green-run.md +7 -0
- package/commands/wk-handoff.md +7 -0
- package/commands/wk-implement.md +7 -0
- package/commands/wk-mockup.md +7 -0
- package/commands/wk-plan.md +7 -0
- package/commands/wk-review.md +7 -0
- package/commands/wk-steer.md +7 -0
- package/commands/wk-tdd.md +7 -0
- package/dist/cursor-session-start.js +13240 -414
- package/dist/mcp-server.js +26086 -27592
- package/dist/workit-hook.js +13202 -0
- package/hooks/hooks-cursor.json +29 -0
- package/package.json +8 -8
- package/rules/workit-contract.mdc +28 -0
- package/skills/workit-babysit/SKILL.md +33 -0
- package/skills/workit-behavioral-tdd/SKILL.md +53 -0
- package/skills/workit-blast-radius/SKILL.md +31 -0
- package/skills/workit-challenge/SKILL.md +62 -0
- package/skills/workit-debug/SKILL.md +61 -0
- package/skills/workit-deslop/SKILL.md +36 -0
- package/skills/workit-diagram/SKILL.md +32 -0
- package/skills/workit-green-run/SKILL.md +29 -0
- package/skills/workit-handoff/SKILL.md +43 -0
- package/skills/workit-implement/SKILL.md +46 -0
- package/skills/workit-mockup/SKILL.md +28 -0
- package/skills/workit-plan/SKILL.md +66 -0
- package/skills/workit-review/SKILL.md +60 -0
- package/skills/workit-steer/SKILL.md +32 -0
- package/assets/templates/execution-contract.md +0 -73
- package/assets/templates/greeting.md +0 -1
- package/assets/templates/headers.md +0 -3
- package/assets/templates/hygiene/.editorconfig +0 -8
- package/assets/templates/hygiene/.gitattributes +0 -3
- package/assets/templates/hygiene/CHANGELOG.md +0 -14
- package/assets/templates/hygiene/CONTRIBUTING.md +0 -3
- package/assets/templates/hygiene/LICENSE +0 -21
- package/assets/templates/hygiene/README.md +0 -3
- package/assets/templates/issue-update.md +0 -6
- package/assets/templates/plan-template.md +0 -27
- package/assets/templates/spec-template.md +0 -51
- package/assets/templates/superpowers-doc-contract.md +0 -75
- package/rules/ask-question-only.mdc +0 -49
- package/rules/cursor-todowrite.mdc +0 -14
- package/rules/no-worktrees.mdc +0 -26
- package/rules/sdd-docs-path.mdc +0 -22
- package/skills/wk-changelog/SKILL.md +0 -75
- package/skills/wk-commit/SKILL.md +0 -657
- package/skills/wk-docs-refresh/SKILL.md +0 -41
- package/skills/wk-handoff/SKILL.md +0 -55
- package/skills/wk-implement/SKILL.md +0 -58
- package/skills/wk-init/SKILL.md +0 -107
- package/skills/wk-issue-update/SKILL.md +0 -101
- package/skills/wk-issue-update/references/youtrack-update-style.md +0 -81
- package/skills/wk-meetings/SKILL.md +0 -50
- package/skills/wk-pr/SKILL.md +0 -90
- package/skills/wk-release-notes/SKILL.md +0 -57
- package/skills/wk-status/SKILL.md +0 -85
- package/skills/wk-verify/SKILL.md +0 -48
- package/vendor/superpowers/skills/brainstorming/SKILL.md +0 -159
- package/vendor/superpowers/skills/brainstorming/scripts/frame-template.html +0 -213
- package/vendor/superpowers/skills/brainstorming/scripts/helper.js +0 -167
- package/vendor/superpowers/skills/brainstorming/scripts/server.cjs +0 -723
- package/vendor/superpowers/skills/brainstorming/spec-document-reviewer-prompt.md +0 -49
- package/vendor/superpowers/skills/brainstorming/visual-companion.md +0 -222
- package/vendor/superpowers/skills/dispatching-parallel-agents/SKILL.md +0 -185
- package/vendor/superpowers/skills/executing-plans/SKILL.md +0 -70
- package/vendor/superpowers/skills/finishing-a-development-branch/SKILL.md +0 -241
- package/vendor/superpowers/skills/receiving-code-review/SKILL.md +0 -213
- package/vendor/superpowers/skills/requesting-code-review/SKILL.md +0 -103
- package/vendor/superpowers/skills/requesting-code-review/code-reviewer.md +0 -172
- package/vendor/superpowers/skills/subagent-driven-development/SKILL.md +0 -428
- package/vendor/superpowers/skills/subagent-driven-development/implementer-prompt.md +0 -139
- package/vendor/superpowers/skills/subagent-driven-development/task-reviewer-prompt.md +0 -188
- package/vendor/superpowers/skills/systematic-debugging/CREATION-LOG.md +0 -119
- package/vendor/superpowers/skills/systematic-debugging/SKILL.md +0 -296
- package/vendor/superpowers/skills/systematic-debugging/condition-based-waiting-example.ts +0 -158
- package/vendor/superpowers/skills/systematic-debugging/condition-based-waiting.md +0 -115
- package/vendor/superpowers/skills/systematic-debugging/defense-in-depth.md +0 -122
- package/vendor/superpowers/skills/systematic-debugging/root-cause-tracing.md +0 -169
- package/vendor/superpowers/skills/systematic-debugging/test-academic.md +0 -14
- package/vendor/superpowers/skills/systematic-debugging/test-pressure-1.md +0 -58
- package/vendor/superpowers/skills/systematic-debugging/test-pressure-2.md +0 -68
- package/vendor/superpowers/skills/systematic-debugging/test-pressure-3.md +0 -69
- package/vendor/superpowers/skills/test-driven-development/SKILL.md +0 -371
- package/vendor/superpowers/skills/test-driven-development/testing-anti-patterns.md +0 -299
- package/vendor/superpowers/skills/using-git-worktrees/SKILL.md +0 -202
- package/vendor/superpowers/skills/using-superpowers/SKILL.md +0 -62
- package/vendor/superpowers/skills/using-superpowers/references/antigravity-tools.md +0 -23
- package/vendor/superpowers/skills/using-superpowers/references/codex-tools.md +0 -39
- package/vendor/superpowers/skills/using-superpowers/references/pi-tools.md +0 -16
- package/vendor/superpowers/skills/verification-before-completion/SKILL.md +0 -139
- package/vendor/superpowers/skills/writing-plans/SKILL.md +0 -174
- package/vendor/superpowers/skills/writing-plans/plan-document-reviewer-prompt.md +0 -49
- package/vendor/superpowers/skills/writing-skills/SKILL.md +0 -689
- package/vendor/superpowers/skills/writing-skills/anthropic-best-practices.md +0 -1150
- package/vendor/superpowers/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +0 -189
- package/vendor/superpowers/skills/writing-skills/graphviz-conventions.dot +0 -172
- package/vendor/superpowers/skills/writing-skills/persuasion-principles.md +0 -187
- 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,58 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: wk-implement
|
|
3
|
-
description: Execute an approved Superpowers plan on Cursor as the coordinator session in either approved execution mode. Subagent-driven dispatches Cursor-native subagents through a lease/token capability; Inline executes every task in this session. Use for /wk-implement or "implement from plan".
|
|
4
|
-
disable-model-invocation: true
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Implement
|
|
8
|
-
|
|
9
|
-
Execute the plan in the **approved execution mode** recorded by `workit_plan_menu` (call `workit_flow_status` to read it). In Subagent-driven mode this session never edits product code — dispatch Cursor-native subagents; in Inline mode it executes every task itself. 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 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 — Route by execution mode
|
|
26
|
-
|
|
27
|
-
Announce: "Using implement + <mode>."
|
|
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
|
-
### Subagent-driven
|
|
45
|
-
|
|
46
|
-
Requires the flow's execution mode `subagent-driven` (set by `workit_plan_menu`).
|
|
47
|
-
|
|
48
|
-
1. `workit_plan_menu` returned the raw **`coordinator_lease`** exactly once — use that stored value; the flow state persists only its hash.
|
|
49
|
-
2. Per task: call MCP `workit_delegate` with `{slug, plan_path, task_id, coordinator_lease, workspace_root}` to mint a task-scoped **`delegation_token`**.
|
|
50
|
-
3. Dispatch a Cursor-native subagent whose prompt includes the task brief and the raw `delegation_token`; the worker passes it as `delegation_token` on its mutation calls (`workit_sdd_task_brief`, `workit_sdd_review_package`, `workit_sdd_append_progress`, `workit_branch_setup`, `workit_pr_create`, …). The MCP validates the token against the flow state and fails closed on invalid, wrong-task, wrong-workspace, or revoked tokens.
|
|
51
|
-
4. Coordinator product edits stay blocked — implementation, reviews, and fix rounds happen in the dispatched subagents.
|
|
52
|
-
5. Appending the task's progress line with the worker's token via `workit_sdd_append_progress` revokes that task's token; mint a fresh token per task.
|
|
53
|
-
|
|
54
|
-
### Inline
|
|
55
|
-
|
|
56
|
-
Load and follow `executing-plans` in the current session. Every task runs in this agent — single-agent, no dispatch, no token minting.
|
|
57
|
-
|
|
58
|
-
**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`.
|
package/skills/wk-init/SKILL.md
DELETED
|
@@ -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.
|
package/skills/wk-pr/SKILL.md
DELETED
|
@@ -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.
|