@workscribe/cli 1.15.5 → 2.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/README.md +48 -113
- package/dist/index.js +3286 -2191
- package/dist/index.js.map +1 -1
- package/package.json +25 -9
- package/skills/workscribe/SKILL.md +61 -0
- package/skills/workscribe/references/json-contract.md +43 -0
- package/skills/workscribe/references/summary-format.md +36 -0
package/package.json
CHANGED
|
@@ -1,7 +1,29 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@workscribe/cli",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "Passive developer work journal — automatic terminal activity summaries",
|
|
5
|
+
"homepage": "https://workscribe.co",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "https://github.com/workscribe/cli"
|
|
9
|
+
},
|
|
10
|
+
"bugs": {
|
|
11
|
+
"url": "https://github.com/workscribe/cli/issues"
|
|
12
|
+
},
|
|
13
|
+
"keywords": [
|
|
14
|
+
"cli",
|
|
15
|
+
"developer-tools",
|
|
16
|
+
"terminal",
|
|
17
|
+
"journal",
|
|
18
|
+
"work-journal",
|
|
19
|
+
"standup",
|
|
20
|
+
"productivity",
|
|
21
|
+
"ai",
|
|
22
|
+
"summary",
|
|
23
|
+
"git",
|
|
24
|
+
"time-tracking",
|
|
25
|
+
"shell"
|
|
26
|
+
],
|
|
5
27
|
"type": "commonjs",
|
|
6
28
|
"bin": {
|
|
7
29
|
"workscribe": "dist/index.js"
|
|
@@ -27,14 +49,8 @@
|
|
|
27
49
|
},
|
|
28
50
|
"files": [
|
|
29
51
|
"dist",
|
|
30
|
-
"shell"
|
|
31
|
-
|
|
32
|
-
"keywords": [
|
|
33
|
-
"developer-tools",
|
|
34
|
-
"journal",
|
|
35
|
-
"terminal",
|
|
36
|
-
"productivity",
|
|
37
|
-
"standup"
|
|
52
|
+
"shell",
|
|
53
|
+
"skills"
|
|
38
54
|
],
|
|
39
55
|
"author": "Mark Edomwande",
|
|
40
56
|
"license": "MIT",
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: workscribe
|
|
3
|
+
description: Summarize the developer's recent work from Workscribe's captured terminal, IDE and AI-session activity, then save the summary back to Workscribe. Use when the user asks what they did today, this week or on a given day, wants a standup, status update or work log, or asks to summarize their sessions or commits. Requires the `workscribe` CLI.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Workscribe work summaries
|
|
7
|
+
|
|
8
|
+
Workscribe records the developer's commands, IDE saves, AI-tool sessions and commits on their machine. This skill reads that record, writes a short outcome-focused summary per work session, and saves it back — after which `workscribe summary`, `workscribe context` and the VS Code status bar show your summary instead of Workscribe's built-in one.
|
|
9
|
+
|
|
10
|
+
## Rules that keep the record clean
|
|
11
|
+
|
|
12
|
+
Every shell command you run is itself recorded by Workscribe. To avoid logging your own work as the developer's:
|
|
13
|
+
|
|
14
|
+
- **Start every command with `workscribe`.** No `cd … &&`, no `npx`, no piping other commands into it.
|
|
15
|
+
- **Never run `git`** (or `cat`, `grep`, `ls`, …) to dig for detail. Commits are already in the JSON. If a commit subject is too vague, read the relevant files under `repoPath` with your own file-reading tool instead of the shell.
|
|
16
|
+
|
|
17
|
+
## 1. Get the sessions
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
workscribe sessions --json
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Add `--date YYYY-MM-DD` for another day. For "this week", run it once per day (Monday to today) and save each day's sessions — but note `workscribe summary --week` keeps using Workscribe's own digest; saved summaries are per day. The output is one line of JSON; see [references/json-contract.md](references/json-contract.md) for the fields you'll use. An empty `sessions` list means nothing was captured — tell the user and stop.
|
|
24
|
+
|
|
25
|
+
## 2. Write one block per session
|
|
26
|
+
|
|
27
|
+
Follow [references/summary-format.md](references/summary-format.md). In short:
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
## <project> (<branch>) — <duration>
|
|
31
|
+
- <outcome>
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
- Up to **7 bullets**, most important first: what was built, fixed, shipped or decided.
|
|
35
|
+
- Build bullets from `commits` (cite the short hash, e.g. `(a1b2c3d)`), test and build results (`exitCode` 0 vs non-zero; `null` means unknown, never "failed"), `notes` (always include them), and `hint`s on unclassified events.
|
|
36
|
+
- Describe outcomes, not commands or tools. Never name the AI tool used. Don't invent anything the data doesn't show.
|
|
37
|
+
- Skip a session with nothing notable rather than padding it.
|
|
38
|
+
|
|
39
|
+
## 3. Save each block
|
|
40
|
+
|
|
41
|
+
Save each session's block with its `key`, as **one command starting with `workscribe`**:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
workscribe sessions summary set --key 'api|2026-10-25T09:00:00.000Z' <<'EOF'
|
|
45
|
+
## api (feature/auth) — 1h 30m
|
|
46
|
+
- Fixed the token refresh race in the auth middleware (a1b2c3d)
|
|
47
|
+
- Added regression tests for expired sessions; suite now passing
|
|
48
|
+
EOF
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Use the quoted `<<'EOF'` form so nothing in the summary is expanded. Saving again for the same key replaces the earlier summary.
|
|
52
|
+
|
|
53
|
+
If it reports that **no session matches the key**, new activity regrouped the day: run `workscribe sessions --json` again and retry with the fresh key. Any other error message says what to fix.
|
|
54
|
+
|
|
55
|
+
## 4. Tell the user
|
|
56
|
+
|
|
57
|
+
Show the summaries, then say they were saved to Workscribe: `workscribe summary` (including `--slack`), `workscribe context` and the VS Code status bar now use them for those sessions. `workscribe summary --fresh` shows Workscribe's own summary for that run without removing yours.
|
|
58
|
+
|
|
59
|
+
## Privacy
|
|
60
|
+
|
|
61
|
+
Running this skill sends the JSON — categories, commit subjects, notes, short redacted hints for unclassified commands, and each session's repo path and working directory; never full commands or IDE file paths — to the model provider behind this agent, along with any files you read under `repoPath`. If the developer needs summaries that never leave their machine, point them to `workscribe summary`, whose template engine runs entirely offline.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# `workscribe sessions --json` — fields this skill uses
|
|
2
|
+
|
|
3
|
+
The full contract is documented at workscribe.co/docs/commands#json-output-contract. Within `schemaVersion: 1`, fields are only ever added — ignore any you don't recognise.
|
|
4
|
+
|
|
5
|
+
```json
|
|
6
|
+
{
|
|
7
|
+
"schemaVersion": 1,
|
|
8
|
+
"date": "2026-10-25",
|
|
9
|
+
"sessions": [
|
|
10
|
+
{
|
|
11
|
+
"key": "api|2026-10-25T09:00:00.000Z",
|
|
12
|
+
"project": "api",
|
|
13
|
+
"repoPath": "/Users/dev/api",
|
|
14
|
+
"branch": "feature/auth",
|
|
15
|
+
"startedAt": "2026-10-25T09:00:00.000Z",
|
|
16
|
+
"endedAt": "2026-10-25T10:30:00.000Z",
|
|
17
|
+
"durationMinutes": 90,
|
|
18
|
+
"notes": ["blocked on staging credentials"],
|
|
19
|
+
"commits": [
|
|
20
|
+
{ "hash": "a1b2c3d", "subject": "fix: token refresh race", "source": "git" },
|
|
21
|
+
{ "hash": null, "subject": "wip: amended away", "source": "captured" }
|
|
22
|
+
],
|
|
23
|
+
"events": [
|
|
24
|
+
{ "category": "testing", "exitCode": 1, "metadata": { "tool": "npm" } },
|
|
25
|
+
{ "category": "testing", "exitCode": 0, "metadata": { "tool": "npm" } },
|
|
26
|
+
{ "category": "other", "hint": "make deploy-staging", "metadata": {} }
|
|
27
|
+
]
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
| Field | Use it for |
|
|
34
|
+
|---|---|
|
|
35
|
+
| `key` | The `--key` when saving this session's summary. Copy it exactly. |
|
|
36
|
+
| `project`, `branch`, `durationMinutes` | The block heading. `project` is the repo name, a `~/path` for work outside git, or `null` (write `unknown`). |
|
|
37
|
+
| `repoPath` | Where to read files if a commit needs context. `null` outside a git repo. |
|
|
38
|
+
| `notes` | The developer's own notes — always include them. |
|
|
39
|
+
| `commits` | The main source of outcomes. `source: "git"` has a short `hash` to cite; `"captured"` commits have `hash: null` (amended or rebased). |
|
|
40
|
+
| `events[].category` | What kind of work: `testing`, `building`, `shipping`, `dependencies`, `releasing`, `ai_session`, `code_edit`, `other`, … |
|
|
41
|
+
| `events[].exitCode` | `0` passed, non-zero failed, `null` unknown (commands run by AI tools). A failure followed by a pass means a fix. |
|
|
42
|
+
| `events[].metadata` | Structured detail: `packages` for dependencies, `tool`, `message`, `remote`/`branch` for pushes. |
|
|
43
|
+
| `events[].hint` | Only on `other` events: a short, redacted start of the command. Infer intent from it; don't quote it. |
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Summary format
|
|
2
|
+
|
|
3
|
+
One block per session, in exactly the shape Workscribe uses everywhere else, so saved summaries look native in `workscribe summary`, `workscribe context` and the VS Code status bar.
|
|
4
|
+
|
|
5
|
+
## Heading
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
## <project> (<branch>) — <duration>
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
- Leave out ` (<branch>)` when `branch` is `null`.
|
|
12
|
+
- If `project` is `null` (no repo and no events), use `unknown`, as Workscribe does.
|
|
13
|
+
- Duration from `durationMinutes`: under an hour as `45m`; otherwise `1h` or `1h 30m`.
|
|
14
|
+
|
|
15
|
+
## Bullets
|
|
16
|
+
|
|
17
|
+
Up to **7**, each starting with `- `, most important first:
|
|
18
|
+
|
|
19
|
+
1. Notes from `notes`, as written — prefix with `Note: `
|
|
20
|
+
2. What was built, fixed or changed, from `commits` — cite the short hash in parentheses when there is one
|
|
21
|
+
3. Test and build outcomes: "Resolved failing tests (now passing)", "Build still failing" — only when `exitCode` shows it; `null` exit codes are unknown, not failures
|
|
22
|
+
4. Dependencies added or removed, releases and deploys, pushes — when they matter
|
|
23
|
+
|
|
24
|
+
Write outcomes in plain past tense ("Fixed…", "Added…", "Shipped…"). Fold routine steps (installing, pushing, re-running) into the outcome they served. Never list commands, file names or the AI tool used. If several commits are steps toward one change, describe the change once.
|
|
25
|
+
|
|
26
|
+
## Example
|
|
27
|
+
|
|
28
|
+
Input (trimmed): commits `a1b2c3d fix: token refresh race` and `e4f5a6b test: expired session regression`, five `testing` events failing then passing, `dependencies` with `packages: ["jose"]`, note "blocked on staging credentials".
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
## api (feature/auth) — 1h 30m
|
|
32
|
+
- Note: blocked on staging credentials
|
|
33
|
+
- Fixed the token refresh race in the auth middleware (a1b2c3d)
|
|
34
|
+
- Added regression tests for expired sessions (e4f5a6b); suite now passing
|
|
35
|
+
- Switched JWT handling to the jose library
|
|
36
|
+
```
|