@staff0rd/assist 0.63.0 → 0.64.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
@@ -36,6 +36,8 @@ After installation, the `assist` command will be available globally.
36
36
  - `/refactor` - Run refactoring checks for code quality
37
37
  - `/restructure` - Analyze and restructure tightly-coupled files
38
38
  - `/review-comments` - Process PR review comments one by one
39
+ - `/journal` - Append a journal entry summarising recent work, decisions, and notable observations
40
+ - `/standup` - Summarise recent journal entries as a standup update
39
41
  - `/verify` - Run all verification commands in parallel
40
42
  - `/transcript-format` - Format meeting transcripts from VTT files
41
43
  - `/transcript-summarise` - Summarise transcripts missing summaries
@@ -0,0 +1,74 @@
1
+ ---
2
+ description: Append a journal entry summarising recent work, decisions, and notable observations
3
+ allowed_args: "[optional focus or note]"
4
+ ---
5
+
6
+ Append a structured journal entry to today's daily file. This should be fast — do not read existing journal files or attempt to deduplicate.
7
+
8
+ ## Step 1: Determine the date and file
9
+
10
+ **IMPORTANT:** Do not rely on your own sense of the current date — it may be stale in long-running sessions. Always run `date +%Y-%m-%d` and `date +%H:%M` via Bash to get the actual current date and time.
11
+
12
+ The journal lives in `~/.claude/journal/`, one file per day, named `YYYY-MM-DD.md`.
13
+
14
+ If today's file doesn't exist, create it with a heading:
15
+
16
+ ```markdown
17
+ # YYYY-MM-DD
18
+ ```
19
+
20
+ ## Step 2: Resolve project context
21
+
22
+ Determine the current project by matching the working directory against `~/.claude/skills/projects.json`. If not inside a registered project, use "general" as the project name.
23
+
24
+ ## Step 3: Write the entry
25
+
26
+ Append an entry to the daily file. Each entry should follow this structure:
27
+
28
+ ```markdown
29
+ ## HH:MM — {project name} #{project name}
30
+
31
+ {Summary of what was done — keep it concise but capture the key points}
32
+
33
+ **Decisions:** {any notable decisions made and why, or "None"}
34
+
35
+ **Topics:** {flag anything blog-worthy, reusable, or worth revisiting — or "None"}
36
+ ```
37
+
38
+ Tag the project name in the heading (e.g., `#project1`, `#general`). When flagging topics, prefix with `#blog-worthy`, `#reusable`, or `#demo-worthy`:
39
+
40
+ Guidelines:
41
+
42
+ - Summarise what was accomplished, not every step taken
43
+ - Capture the "why" behind decisions — this is what you'll forget
44
+ - Flag blog-worthy topics with a brief note on why it's interesting
45
+ - Flag reusable patterns, utilities, or approaches worth extracting
46
+ - Flag demo-worthy work — things that would make a good presentation, show-and-tell, or live walkthrough
47
+ - If the user provided `$ARGUMENTS`, use it to focus or annotate the entry
48
+ - Keep entries concise — a few lines per section, not paragraphs
49
+
50
+ ## Step 4: Write detail files (when topics are flagged)
51
+
52
+ When a topic is flagged as blog-worthy or reusable, create a supporting detail file that captures the context needed to act on it later. Without this, the journal flags opportunities but loses the detail needed to follow through.
53
+
54
+ Detail files live in `~/.claude/journal/details/` and are named `YYYY-MM-DD-{slug}.md`.
55
+
56
+ Link them from the journal entry:
57
+
58
+ ```markdown
59
+ **Topics:**
60
+
61
+ - #blog-worthy Teaching Claude to reflect — [detail](details/2026-02-13-reflect-workflow.md)
62
+ - #reusable The skill/hook pattern — [detail](details/2026-02-13-starter-kit.md)
63
+ ```
64
+
65
+ Each detail file should include whichever of the following are relevant:
66
+
67
+ - **Context** — what problem was being solved and why
68
+ - **Approach** — what was tried, including dead ends and alternatives considered
69
+ - **Key code** — relevant snippets, patterns, or configurations that were created
70
+ - **Outcome** — what worked, what didn't, and why
71
+ - **Blog angle** — if blog-worthy, what makes it interesting to write about
72
+ - **Extraction notes** — if reusable, what could be extracted and how it might be generalised
73
+
74
+ These files are meant to preserve enough context that someone (including a future Claude session) could flesh out a blog post or extract reusable code without the original conversation.
@@ -0,0 +1,35 @@
1
+ ---
2
+ description: Summarise recent journal entries as a standup update
3
+ allowed_args: "[days back, default 1] [project name]"
4
+ ---
5
+
6
+ Summarise recent journal entries.
7
+
8
+ ## Step 1: Determine the range
9
+
10
+ Parse `$ARGUMENTS` for:
11
+
12
+ - A number (days to look back, default 1)
13
+ - A project name (filter to that project only, default all)
14
+
15
+ Examples:
16
+
17
+ - `/standup` — yesterday's entries, all projects
18
+ - `/standup 3` — last 3 days, all projects
19
+ - `/standup project1` — yesterday's entries for project1
20
+ - `/standup 7 project2` — last 7 days for project2
21
+
22
+ ## Step 2: Read journal files
23
+
24
+ Read the daily files from `~/.claude/journal/` for the date range. Files are named `YYYY-MM-DD.md`.
25
+
26
+ ## Step 3: Present the summary
27
+
28
+ Summarise the entries concisely, grouped by day and project. Highlight:
29
+
30
+ - What was accomplished
31
+ - Key decisions made
32
+ - Any flagged blog topics or reusable IP
33
+ - Anything left in progress
34
+
35
+ Keep it brief — this is a standup, not a report.
@@ -27,6 +27,7 @@
27
27
  "Bash(assist transcript summarise:*)",
28
28
  "Bash(assist complexity:*)",
29
29
  "Bash(assist transcript format:*)",
30
+ "Bash(date:*)",
30
31
  "Bash(git add:*)",
31
32
  "Bash(git status:*)",
32
33
  "Bash(git show:*)",
@@ -36,6 +37,7 @@
36
37
  "Bash(gh repo view:*)",
37
38
  "Bash(gh pr checks:*)",
38
39
  "Bash(gh pr view:*)",
40
+ "Bash(gh pr list:*)",
39
41
  "Bash(gh pr diff:*)",
40
42
  "Bash(gh run view:*)",
41
43
  "SlashCommand(/next-backlog-item)",
@@ -46,6 +48,8 @@
46
48
  "SlashCommand(/review-comments)",
47
49
  "SlashCommand(/transcript-format)",
48
50
  "SlashCommand(/transcript-summarise)",
51
+ "SlashCommand(/journal)",
52
+ "SlashCommand(/standup)",
49
53
  "Skill(next-backlog-item)",
50
54
  "Skill(verify)",
51
55
  "Skill(commit)",
@@ -54,6 +58,8 @@
54
58
  "Skill(review-comments)",
55
59
  "Skill(transcript-format)",
56
60
  "Skill(transcript-summarise)",
61
+ "Skill(journal)",
62
+ "Skill(standup)",
57
63
  "WebFetch(domain:staffordwilliams.com)"
58
64
  ],
59
65
  "deny": ["Bash(git commit:*)", "Bash(npm run:*)", "Bash(npx assist:*)"]
package/dist/index.js CHANGED
@@ -6,7 +6,7 @@ import { Command } from "commander";
6
6
  // package.json
7
7
  var package_default = {
8
8
  name: "@staff0rd/assist",
9
- version: "0.63.0",
9
+ version: "0.64.0",
10
10
  type: "module",
11
11
  main: "dist/index.js",
12
12
  bin: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@staff0rd/assist",
3
- "version": "0.63.0",
3
+ "version": "0.64.0",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "bin": {