@staff0rd/assist 0.347.0 → 0.349.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/README.md CHANGED
@@ -42,6 +42,7 @@ After installation, the `assist` command will be available globally. You can als
42
42
 
43
43
  - `/add-command` - Add a new run command to assist.yml
44
44
  - `/associate-jira <KEY> [id]` - Associate a Jira ticket with the backlog item this session is working on (or an explicit id) by calling `assist backlog associate-jira`
45
+ - `/branch <description> [--jira KEY]` - Create a branch off the fresh remote default via `assist branch`, deriving a kebab-case slug from the description and auto-filling the Jira key from the session's backlog item when one is associated
45
46
  - `/bug` - File a bug with reproduction steps, expected and actual behavior
46
47
  - `/comment` - Add pending review comments to the current PR
47
48
  - `/commit` - Commit only relevant files from the session
@@ -58,6 +59,7 @@ After installation, the `assist` command will be available globally. You can als
58
59
  - `/restructure` - Analyze and restructure tightly-coupled files
59
60
  - `/review-comments` - Process PR review comments one by one
60
61
  - `/jira` - View a Jira work item
62
+ - `/update-jira [JIRA-KEY]` - Post a concise summary of this session's findings to a Jira ticket via MCP; attaches a passed key to the session's backlog item (else reads the key from it), retargets sub-task comments to the parent, and previews the comment before posting on confirmation
61
63
  - `/journal` - Append a journal entry summarising recent work, decisions, and notable observations
62
64
  - `/next [id]` - Signal completion and chain into the next backlog item; pass an `id` to run a specific item directly (falls back to the picker if the id is missing, done, won't-do, or blocked)
63
65
  - `/standup` - Summarise recent journal entries as a standup update
@@ -93,7 +95,7 @@ After installation, the `assist` command will be available globally. You can als
93
95
  - `assist commit status` - Show git status and diff
94
96
  - `assist commit <message>` - Commit staged changes with validation
95
97
  - `assist commit <message> [files...]` - Stage files and create a git commit with validation
96
- - `assist branch <slug> [--jira <key>]` - Create and switch to a new branch off the fresh remote default branch. Assembles the name as `[<prefix>/][<JIRA>-]<slug>` (prefix from the optional `branch.prefix` config, Jira key used verbatim), fetches and branches from `origin/<default>` (resolved dynamically, not hardcoded to main), and rejects slugs whose numeric tokens look like backlog IDs
98
+ - `assist branch <slug> [--jira <key>]` - Create and switch to a new branch off the fresh remote default branch. Assembles the name as `[<prefix>/][<JIRA>-]<slug>` (prefix from the optional `branch.prefix` config, Jira key used verbatim), fetches and branches from `origin/<default>` (resolved live from the remote, falling back to `main`, overridable via `branch.defaultBranch`), and rejects slugs whose numeric tokens look like backlog IDs
97
99
  - `assist prs` - List pull requests for the current repository
98
100
  - `assist prs raise --title <title> --what <what> --why <why> [--how <how>] [--resolves <key>] [--force]` - Raise a pull request, assembling the body from `## What`, `## Why` (with `--resolves` Jira URLs appended inline), and an optional `## How`; errors if a PR already exists unless `--force` overwrites its title and body
99
101
  - `assist prs edit [--title <title>] [--what <what>] [--why <why>] [--how <how>] [--resolves <key>]` - Update only the supplied sections of the current branch's pull request, preserving every other section of its body
@@ -298,6 +300,8 @@ When `commit.expectedBranch` is set (e.g. `main`), `assist commit` prints a prom
298
300
 
299
301
  When `branch.prefix` is set (e.g. `sw`), `assist branch <slug>` prepends `<prefix>/` to the branch name. With the key unset, no prefix segment is added.
300
302
 
303
+ `assist branch` resolves the base branch live from the remote (`git ls-remote --symref origin HEAD`), so it never depends on a stale or unset local `origin/HEAD`. If the remote advertises no default it falls back to `main`. Set `branch.defaultBranch` (e.g. `develop`) to override the base branch outright.
304
+
301
305
  ## netcap browser extension
302
306
 
303
307
  `assist netcap` only runs the receiver; the browser side is a raw Manifest V3 extension (no build step) under `netcap-extension/`. A MAIN-world content script patches `fetch`/`XMLHttpRequest` to capture `{url, method, status, requestBody, responseBody, timestamp}`, relays each entry to the background service worker (`window.postMessage` → `chrome.runtime.sendMessage`), and the background worker POSTs it to the receiver. The XHR patch reads the response across every `responseType` (`json`, `blob`, `arraybuffer`, `document`, not just `text`) — LinkedIn's voyager GraphQL calls use `responseType: "json"`, which exposes no `responseText`, so reading `responseText` alone captured those bodies empty. Forwarding happens in the background context, so the page's CSP (`connect-src`) never blocks it — the limitation that killed the earlier console-paste approach.
@@ -0,0 +1,34 @@
1
+ ---
2
+ description: Create a branch off the fresh remote default via assist branch
3
+ allowed_args: "<description of the work> [--jira KEY]"
4
+ ---
5
+
6
+ You are creating a git branch by calling the `assist branch` CLI command, which fetches and branches off the fresh remote default (`origin/<default>`) and enforces the team naming convention.
7
+
8
+ ## Step 1: Derive the slug
9
+
10
+ `$ARGUMENTS` is a free-text description of the work (e.g. "add login form"). Turn it into a concise kebab-case slug: lowercase, words joined by hyphens, no leading/trailing punctuation (e.g. `add-login-form`).
11
+
12
+ Do not put backlog item numbers in the slug — `assist branch` rejects bare 1–4 digit numeric tokens and `#<number>` references, because they look like internal backlog IDs. If the description contains such a number, drop or reword it (e.g. "fix 404 page" → `fix-not-found-page`).
13
+
14
+ ## Step 2: Resolve the Jira key
15
+
16
+ If `$ARGUMENTS` contains an explicit `--jira <KEY>` (or a bare `[A-Z]+-\d+` token), use that key.
17
+
18
+ Otherwise, if this session is working on a backlog item, read its associated Jira key:
19
+
20
+ ```
21
+ assist backlog show <id> 2>&1
22
+ ```
23
+
24
+ If the output includes a `Jira: <KEY>` line, use that key. If there is no session item or no associated key, omit `--jira` entirely.
25
+
26
+ ## Step 3: Create the branch
27
+
28
+ Run the command with the resolved slug and optional key:
29
+
30
+ ```
31
+ assist branch <slug> --jira <KEY> 2>&1
32
+ ```
33
+
34
+ Omit `--jira <KEY>` when no key was resolved. Display the command output so the user sees the created branch name and the `origin/<default>` it was based on. If the command reports an error (invalid slug, git failure), relay it to the user — no branch is created on failure.
@@ -0,0 +1,53 @@
1
+ ---
2
+ description: Post a concise summary of this session's findings to a Jira ticket
3
+ allowed_args: "[JIRA-KEY]"
4
+ ---
5
+
6
+ You are posting a concise comment summarising this session's findings to a Jira ticket via the Atlassian MCP. If a key is passed it is first attached to the session's current backlog item; otherwise the key is read from that item.
7
+
8
+ ## Step 1: Resolve the session's backlog item
9
+
10
+ Determine the backlog item this session is working on — the one you are implementing, reviewing, or otherwise focused on (e.g. via `/next-backlog-item`, a `backlog run`, or earlier in this conversation). You need its id for the steps below.
11
+
12
+ ## Step 2: Resolve the Jira key
13
+
14
+ If `$ARGUMENTS` contains a Jira key (matches `[A-Z]+-\d+`), attach it to the session's current backlog item, then use it:
15
+
16
+ ```
17
+ assist backlog associate-jira <id> <JIRA-KEY> 2>&1
18
+ ```
19
+
20
+ If the command reports an error (item not found, malformed key, or the issue could not be fetched), relay it to the user and stop — no key is stored on failure.
21
+
22
+ If no key was passed, read it from the session item:
23
+
24
+ ```
25
+ assist backlog show <id> 2>&1
26
+ ```
27
+
28
+ Use the `Jira: <KEY>` line from the output.
29
+
30
+ If no key can be resolved — none was passed and the item has no associated key (or there is no session item) — tell the user clearly that there is nothing to post to and do nothing further. Do not guess a key.
31
+
32
+ ## Step 3: Fetch the issue and resolve the comment target
33
+
34
+ Fetch the issue with the `mcp__claude_ai_Atlassian__getJiraIssue` tool, requesting fields including `issuetype` and `parent`.
35
+
36
+ If `fields.issuetype` indicates a sub-task (`fields.issuetype.subtask` is true), retarget the comment to the parent: use `fields.parent.key` as the issue you comment on. Otherwise comment on the key itself.
37
+
38
+ ## Step 4: Compose a concise comment
39
+
40
+ Draft a terse summary of this session's findings from the conversation context:
41
+
42
+ - One summary line stating what was done or found.
43
+ - A few short bullets with the concrete specifics (files, decisions, outcomes).
44
+
45
+ Keep it concise: no headers, no wall of text, no restating the whole session. If there is little of substance to report, keep it to the single summary line.
46
+
47
+ Do not mention `assist`, the assist backlog, or any backlog item number in the comment — the Jira ticket is outward-facing and must not leak internal tooling references. Refer to commits, PRs, or the work itself instead.
48
+
49
+ ## Step 5: Preview and confirm before posting
50
+
51
+ Show the drafted comment and the target issue key to the user. Do not post until the user explicitly confirms. If they ask for edits, revise and show the updated draft again.
52
+
53
+ Once confirmed, post it with the `mcp__claude_ai_Atlassian__addCommentToJiraIssue` tool, using the resolved target key and `contentFormat: markdown`. Display the result so the user can see it landed.