passalong 0.20.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/README.md +62 -72
- package/bin/passalong +217 -378
- package/package.json +4 -4
- package/skill/SKILL.md +55 -167
- package/src/api.js +100 -190
- package/src/capture.js +15 -51
- package/src/checks.js +5 -5
- package/src/hooks.js +9 -18
- package/src/mcp.js +691 -1484
- package/src/passalong.js +365 -702
- package/src/store.js +18 -28
- package/src/work.js +416 -0
- package/src/guide.js +0 -811
package/README.md
CHANGED
|
@@ -1,109 +1,99 @@
|
|
|
1
1
|
# passalong
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Work for your team and its AI agents, and what they know.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
Say what needs doing once — in a sentence, with a screenshot, from email or a webhook. Whoever it is
|
|
6
|
+
for, a person or their agent, takes it, says how it is going, and hands it in with the evidence, and
|
|
7
|
+
it is Done. What the agent learned goes into the project's documents, where the next one finds it.
|
|
8
|
+
Everyone can see who has what. Works with Claude Code, Codex, ChatGPT, Claude, or anything that
|
|
9
9
|
speaks MCP or HTTP. See [passalong.dev](https://passalong.dev).
|
|
10
10
|
|
|
11
11
|
```sh
|
|
12
12
|
npm i -g passalong
|
|
13
|
-
passalong setup #
|
|
14
|
-
passalong login #
|
|
13
|
+
passalong setup # the Claude Code capture skill, the MCP server and hooks
|
|
14
|
+
passalong login # approve this machine in the hub; no password typed
|
|
15
15
|
codex mcp add passalong -- passalong mcp # Codex: the same MCP server
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
## The loop
|
|
19
19
|
|
|
20
|
-
1. **
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
1. **Write it down.** `passalong new "the upload button does nothing"`, the hub's box, or an agent's
|
|
21
|
+
`create_work`. Work has no kinds and no required sections: a title, a one-line summary, and
|
|
22
|
+
whatever the next reader needs. It is Ready at once unless you say `--draft`.
|
|
23
|
+
2. **Take it.** `passalong take <id>` (or `take` with no id for the next one here) holds it: nobody
|
|
24
|
+
else can take it while you do, and whoever sent it sees you are on it.
|
|
25
|
+
3. **Say how it is going.** `passalong progress <id> "migration written"`. Stuck or not yours:
|
|
26
|
+
`passalong pass <id> <why>`. Need an answer: `passalong ask <id> <question>`.
|
|
27
|
+
4. **Hand it in.** `passalong hand-in <id> <note> --evidence "npm test: 42 passing"`. It goes to Done
|
|
28
|
+
with what you showed; a person can `reopen` it with a reason if it is not right.
|
|
29
|
+
5. **Keep what you learned.** Say *"pass this along"* or run `/passalong-capture`: the skill writes it
|
|
30
|
+
into the project's documents and a line on its Log.
|
|
27
31
|
|
|
28
32
|
## Commands
|
|
29
33
|
|
|
30
34
|
```
|
|
31
|
-
passalong
|
|
32
|
-
passalong
|
|
33
|
-
passalong
|
|
34
|
-
passalong
|
|
35
|
-
passalong
|
|
36
|
-
passalong
|
|
37
|
-
passalong
|
|
38
|
-
passalong
|
|
39
|
-
passalong
|
|
40
|
-
passalong
|
|
41
|
-
passalong
|
|
42
|
-
passalong
|
|
43
|
-
passalong
|
|
44
|
-
passalong
|
|
45
|
-
passalong
|
|
46
|
-
passalong
|
|
47
|
-
passalong
|
|
48
|
-
passalong
|
|
35
|
+
passalong new "<what needs doing>" [--to TARGET] [--parent ID] [--draft] write work down
|
|
36
|
+
passalong new <file.md> [--to TARGET] [--parent ID] [--draft] the same, from a file
|
|
37
|
+
passalong board what needs you, who is on what, and what is ready
|
|
38
|
+
passalong list [query] work you and your teams can see, newest first
|
|
39
|
+
passalong open <id> [--print] view work in the browser (or the terminal)
|
|
40
|
+
passalong take [id] [--save] you are doing it; --save also writes ./.passalong/<id>.md (git-ignored)
|
|
41
|
+
passalong progress <id> <note> still on it, with a one-line note the hub shows
|
|
42
|
+
passalong hand-in <id> <note> --evidence TEXT [--writeup TEXT] [--pr LINK] it is done
|
|
43
|
+
passalong pass <id> <why> not yours, or stuck: hands it back with your reason
|
|
44
|
+
passalong ask <id> <question> ask the person, keep it, and wait for their answer
|
|
45
|
+
passalong reply <id> <text> write to whoever holds it (--file PATH to attach); or leave a note
|
|
46
|
+
passalong assign <id> <to> give it to @handle (or several), a #group, or "team"
|
|
47
|
+
passalong release <id> take work back from whoever holds it
|
|
48
|
+
passalong reopen <id> <why> finished work isn't right: back to To do, with why
|
|
49
|
+
passalong ready <id...|--all> drafts you have read are Ready
|
|
50
|
+
passalong archive <id> off the board and out of the free tier's count
|
|
51
|
+
passalong rm <id> delete it
|
|
52
|
+
passalong attach <file> upload a picture or file and print the markdown that points at it
|
|
53
|
+
passalong work [--once] [--agent CMD] run an agent on each piece of ready work here, in turn
|
|
54
|
+
passalong work --watch the runner: keep taking work a person marked safe to run alone
|
|
55
|
+
passalong now what this worktree holds and what is waiting
|
|
56
|
+
passalong hub open the hub in the browser
|
|
57
|
+
passalong export [dir] every piece of work as plain markdown
|
|
58
|
+
passalong login [--new | --with-token] sign in from the browser, add an account, or read a token
|
|
59
|
+
passalong accounts | use <name> | logout [name] the accounts on this machine
|
|
49
60
|
passalong me [--handle H] [--name N] [--email E] who you are to teammates
|
|
50
|
-
passalong team
|
|
51
|
-
passalong
|
|
52
|
-
passalong team invite [email] make an invite link (mailed when an email is given)
|
|
53
|
-
passalong team join <link> accept an invite
|
|
54
|
-
passalong team use <slug> switch the current team
|
|
55
|
-
passalong setup install the Claude Code capture skill + register the MCP server
|
|
61
|
+
passalong team [create <name> | invite [email] | join <link> | use <slug>] teams
|
|
62
|
+
passalong setup install the capture skill, MCP server and hooks
|
|
56
63
|
passalong mcp run the MCP server over stdio
|
|
57
64
|
passalong version print the installed version (also -v, --version)
|
|
58
65
|
```
|
|
59
66
|
|
|
60
67
|
## Teams
|
|
61
68
|
|
|
62
|
-
A team is
|
|
63
|
-
|
|
64
|
-
when the server has mail configured
|
|
69
|
+
A team is where work goes. Everyone in it sees the same board; work can be sent to one person
|
|
70
|
+
(`--to khaime/@ada`), a group (`--to khaime/#frontend`) or the whole team, and whoever it names is
|
|
71
|
+
told — by email too, when the server has mail configured.
|
|
65
72
|
|
|
66
73
|
```sh
|
|
67
74
|
passalong me --handle lukman # how teammates address you
|
|
68
75
|
passalong team create Khaime # you become owner; "khaime" is now current
|
|
69
76
|
passalong team invite ada@example.com # or no email: prints a link to send yourself
|
|
70
|
-
passalong
|
|
71
|
-
passalong
|
|
72
|
-
passalong inbox # on Ada's side: what was handed to you
|
|
73
|
-
passalong activity # back on your side: it landed, and who pulled it
|
|
77
|
+
passalong new "Fix the upload button" --to khaime/@ada
|
|
78
|
+
passalong board # on Ada's side: what needs her
|
|
74
79
|
```
|
|
75
80
|
|
|
76
|
-
|
|
77
|
-
`status: draft`, until a person runs `passalong ready <id>`), then whoever takes it (`passalong take <id>`) holds it, hands it in with
|
|
78
|
-
the evidence, and a person approves it or sends it back with the reason (`passalong approve` /
|
|
79
|
-
`passalong reject`).
|
|
80
|
-
|
|
81
|
-
Sign in at [the hub](https://passalong.dev/hub) with an email and password, and mint
|
|
82
|
-
an API token there for the CLI and MCP servers — named, revocable, and shown once. Your password
|
|
83
|
-
never goes near the terminal. `passalong login` with no arguments still makes an account without
|
|
84
|
-
any of that; add an email and password later to be able to sign in from a browser and recover it.
|
|
85
|
-
|
|
86
|
-
Not everyone who receives a guide implements it. Every guide page has a **Verify** view
|
|
87
|
-
(`?view=verify`) that leads with Problem, Verification and Gotchas and folds the implementation
|
|
88
|
-
away — for a tester or anyone checking the work rather than doing it. Invites are accepted in the
|
|
89
|
-
browser, so a teammate needs no terminal to be part of a team.
|
|
90
|
-
|
|
91
|
-
`passalong activity` is the other half of the transfer: it tells you when someone pulled a guide
|
|
92
|
-
you handed over, when they marked it consumed, and when an invite was taken up. A handoff
|
|
93
|
-
addressed to a person is also emailed; a team-wide share is not, because mail nobody is
|
|
94
|
-
named in is the first thing people filter out. Guides that keep getting pulled get a nudge to
|
|
95
|
-
promote them into the team's small set of maintained references.
|
|
81
|
+
Invites are accepted in the browser, so a teammate needs no terminal to be part of a team.
|
|
96
82
|
|
|
97
83
|
## MCP
|
|
98
84
|
|
|
99
|
-
`passalong setup` registers the server with Claude Code. For other clients, run `passalong mcp` over
|
|
85
|
+
`passalong setup` registers the server with Claude Code. For other clients, run `passalong mcp` over
|
|
86
|
+
stdio, or add the hosted server at `https://passalong.dev/v1/mcp`.
|
|
100
87
|
|
|
101
|
-
|
|
88
|
+
Seventeen tools over four nouns. Work: `take`, `progress`, `hand_in`, `pass`, `ask`, `create_work`,
|
|
89
|
+
`find_work`, `update_work`. Projects and their documents: `find_projects`, `save_project`,
|
|
90
|
+
`read_document`, `save_document`, `delete_document`. Files: `add_file`, `read_file`, `delete_file`.
|
|
91
|
+
And `accounts`, for a machine signed in more than once.
|
|
102
92
|
|
|
103
|
-
##
|
|
93
|
+
## Work is plain markdown
|
|
104
94
|
|
|
105
95
|
Plain markdown with frontmatter, held on the server; nothing piles up on your machine. Ask for a
|
|
106
|
-
file when you want one: `passalong
|
|
96
|
+
file when you want one: `passalong take <id> --save`, or `passalong export` for everything.
|
|
107
97
|
|
|
108
98
|
Point at a self-hosted server with `PASSALONG_API=https://your-host` before `passalong login`.
|
|
109
99
|
|
|
@@ -115,6 +105,6 @@ A machine can be signed in to several accounts, say a work one and a personal on
|
|
|
115
105
|
|
|
116
106
|
An agent has no terminal to be asked at, so with two or more accounts and nothing saying which, it
|
|
117
107
|
is refused and told to ask you. It puts the question to you in plain words, you answer, and it calls
|
|
118
|
-
`
|
|
119
|
-
`--as <name>` or `PASSALONG_ACCOUNT=<name>` says the same for one command. The team you work
|
|
120
|
-
(`passalong team use`) belongs to the account, not the machine.
|
|
108
|
+
`accounts` with `use` and the name. That lasts for the session and moves nothing on disk. From a
|
|
109
|
+
shell, `--as <name>` or `PASSALONG_ACCOUNT=<name>` says the same for one command. The team you work
|
|
110
|
+
in (`passalong team use`) belongs to the account, not the machine.
|