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/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "passalong",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Work, projects, documents and files for a team and its agents: take work, hand it in with evidence, and keep what the team knows in its projects.",
|
|
5
5
|
"mcpName": "io.github.codellyson/passalong",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"mcp",
|
|
8
8
|
"claude-code",
|
|
9
9
|
"agent",
|
|
10
|
-
"
|
|
11
|
-
"knowledge
|
|
10
|
+
"projects",
|
|
11
|
+
"team-knowledge",
|
|
12
12
|
"cli",
|
|
13
13
|
"markdown",
|
|
14
14
|
"mcp-server",
|
package/skill/SKILL.md
CHANGED
|
@@ -1,180 +1,68 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: passalong-capture
|
|
3
|
-
description:
|
|
3
|
+
description: Write what this session learned into the team's Passalong project documents — updating the pages that already cover it and adding a line to the project's Log — so the next person or agent who picks up work on this product starts knowing it. Use when the user says "pass this along", "passalong this", "hand this off", "capture this", "write this up for the team", "remember this for next time", or runs /passalong-capture.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Passalong capture
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
Passalong has four things: **work** (what someone must still do), **projects** (one per product or
|
|
9
|
+
body of work), **documents** (what to know about a project) and **files**. Capturing a session means
|
|
10
|
+
writing what it learned into the project's **documents**, where everyone who takes work on that
|
|
11
|
+
product reads it — not handing a one-off write-up to one person. Every version of a document is
|
|
12
|
+
kept, so editing a page is safe: a bad edit can be put back.
|
|
11
13
|
|
|
12
|
-
|
|
14
|
+
You need the Passalong MCP server (`find_projects`, `read_document`, `save_document`). If those tools
|
|
15
|
+
are missing, tell the user to run `npm i -g passalong && passalong setup` and stop.
|
|
13
16
|
|
|
14
|
-
|
|
15
|
-
`take` with no id over MCP) to see what this worktree holds and what was handed to you.
|
|
17
|
+
## Before you write anything
|
|
16
18
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
what you ran and what came back — the command and the lines that decided it, a test summary, a
|
|
20
|
-
link to the change, or a screenshot url. Copy each one out of the session as you go; at the end
|
|
21
|
-
you would be writing from memory, which is what evidence exists to replace. On a **task**, send
|
|
22
|
-
it as `checks`: one entry per Acceptance line, each with that line and the evidence for it. Its
|
|
23
|
-
author reads them line against line, and evidence filed under the check it answers is worth more
|
|
24
|
-
than the same output in one block. On a handoff or a bug, which have no Acceptance lines, send
|
|
25
|
-
`evidence` as one block.
|
|
26
|
-
- **The work never left this repo** — committed and pushed on a branch the team can already see,
|
|
27
|
-
with a pull request to review — then it has crossed no boundary, and a transfer guide is one more
|
|
28
|
-
thing for somebody to read. What is worth publishing from a session like that is what is *still
|
|
29
|
-
open*: file it as a bug (`kind: bug`) or a task, not as a write-up of the fix.
|
|
30
|
-
- **The ask is vague** — "update the passalong", "add this to passalong", "log this" — it may mean
|
|
31
|
-
hand in what you hold, add a follow-up to a guide, or publish something new. Ask which, in one
|
|
32
|
-
line. Publishing the wrong thing costs somebody a review, and the author a guide to delete.
|
|
19
|
+
**Check what is open.** Call `find_work` with nothing (or run `passalong now`) to see what this
|
|
20
|
+
worktree holds.
|
|
33
21
|
|
|
34
|
-
|
|
35
|
-
|
|
22
|
+
- **The session finished something you hold** — `hand_in` that first, with its evidence: what you
|
|
23
|
+
ran and what came back — the command and the lines that decided it, a test summary, a link to the
|
|
24
|
+
change, or a screenshot. Then capture what was learned, below. A hand-in says the work is done; the
|
|
25
|
+
documents say what is now true.
|
|
26
|
+
- **Something is still open** — a defect you found and did not fix, a follow-on job — that is work,
|
|
27
|
+
not knowledge. Write it down with `create_work`: one call, one item each, every item with a
|
|
28
|
+
`summary` a person can read. Never record open work only in a document: a document has no owner
|
|
29
|
+
and no state and tells nobody.
|
|
30
|
+
- **The ask is vague** — "update the passalong", "add this to passalong" — it may mean hand in what
|
|
31
|
+
you hold, update the documents, or write new work. Ask which, in one line.
|
|
36
32
|
|
|
37
33
|
## Procedure
|
|
38
34
|
|
|
39
|
-
1. **
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
2. **
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
3. **
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
4. **
|
|
50
|
-
`
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
well as fetching it, and until somebody takes it the sender cannot tell a guide nobody noticed
|
|
74
|
-
from one somebody is deep in.
|
|
75
|
-
|
|
76
|
-
If the `passalong` command is missing, tell the user to run `npm i -g passalong && passalong setup` and
|
|
77
|
-
still write the draft file so nothing is lost.
|
|
78
|
-
|
|
79
|
-
## Choose the right Passalong form
|
|
80
|
-
|
|
81
|
-
Every guide must state `kind:`. An absent kind is refused; the server never guesses one.
|
|
82
|
-
|
|
83
|
-
- `transfer` is context for a different repo, machine or agent session. It has no required
|
|
84
|
-
sections. Write only what the receiver needs to avoid starting cold.
|
|
85
|
-
- `bug` is a defect to fix. Put the reproduction under `## Reproduce`, never `## Steps`, so the
|
|
86
|
-
receiver does not mistake the steps that show the defect for a remedy. Use `file_bugs` when
|
|
87
|
-
filing several independent defects.
|
|
88
|
-
- `task` is work nobody has done yet. Use `plan_tasks` for a larger goal; its `## Acceptance`
|
|
89
|
-
gives the reviewer something to check. Do not write implementation steps for the taker.
|
|
90
|
-
|
|
91
|
-
**A project folder is not a guide.** When asked to keep a script, brief, screenshots or other
|
|
92
|
-
assets together for continuing work, call `list_folders` first. Reuse a fitting folder, or call
|
|
93
|
-
`create_folder` with a title and short description drawn from the person's request. Create the
|
|
94
|
-
first Markdown document with `create_folder_document`; do not leave an empty folder or ask the
|
|
95
|
-
person to fill a form. Omit `team` unless they asked to share it. Read a document and its version
|
|
96
|
-
before `save_folder_document`; reread after a stale-version refusal. Add files with
|
|
97
|
-
`add_folder_asset` and link an existing guide with `link_folder_guide` only when it uses the folder.
|
|
98
|
-
|
|
99
|
-
## Say it to a person
|
|
100
|
-
|
|
101
|
-
Everything below is written for another agent: exact, dense, full of ids and paths. A person reading
|
|
102
|
-
their hub wants two sentences. So every guide carries a `summary:` in its frontmatter — plain
|
|
103
|
-
language, 400 characters at most, no ids, paths or jargon, saying what this is and whether anybody
|
|
104
|
-
has to do anything. It is what they see first; your document is behind it. A guide with no summary is
|
|
105
|
-
refused.
|
|
106
|
-
|
|
107
|
-
Write it the way you would tell a colleague in the corridor: "Webhook signatures are now checked
|
|
108
|
-
before anything is stored. Done and working; nothing to do." Not: "Implemented HMAC-SHA512 verify in
|
|
109
|
-
billing.ts per the Paystack spec, see PR 412."
|
|
110
|
-
|
|
111
|
-
## Guide structure
|
|
112
|
-
|
|
113
|
-
```markdown
|
|
114
|
-
---
|
|
115
|
-
title: <what this accomplishes, as a verb phrase: "Add Paystack webhook verification">
|
|
116
|
-
summary: <one or two plain sentences for a PERSON, 400 characters at most, no ids or paths: what this is and whether anyone has to act>
|
|
117
|
-
kind: transfer
|
|
118
|
-
author: <git user.name, if known>
|
|
119
|
-
source_context: <repo or product this came from>
|
|
120
|
-
status: published
|
|
121
|
-
stack_assumptions: [<runtime/framework/db/service versions the steps depend on>]
|
|
122
|
-
tags: [<3 to 6 lowercase keywords>]
|
|
123
|
-
---
|
|
124
|
-
|
|
125
|
-
## What changed
|
|
126
|
-
The information the receiving agent needs, in the shape that makes it easiest to use.
|
|
127
|
-
|
|
128
|
-
## Why
|
|
129
|
-
Decisions or constraints the receiver could not infer from the final code.
|
|
130
|
-
|
|
131
|
-
## How to check
|
|
132
|
-
Commands and expected results, if the receiver needs to repeat or verify the work.
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
Those headings are examples, not a required template. A short transfer may be a paragraph.
|
|
136
|
-
Include paths, assumptions, verification or gotchas only when they help the next agent act.
|
|
137
|
-
|
|
138
|
-
## Bug structure
|
|
139
|
-
|
|
140
|
-
```markdown
|
|
141
|
-
---
|
|
142
|
-
title: <what is broken, in one line: "Undo leaves section drag handles dead">
|
|
143
|
-
summary: <one or two plain sentences for a PERSON: what is broken and whether anyone has to act>
|
|
144
|
-
kind: bug
|
|
145
|
-
severity: <s1 blocker | s2 major | s3 minor | s4 cosmetic>
|
|
146
|
-
area: <which surface it is on>
|
|
147
|
-
report: <the report id, when it was filed with others>
|
|
148
|
-
status: published
|
|
149
|
-
tags: [bug, <2 to 4 more>]
|
|
150
|
-
---
|
|
151
|
-
|
|
152
|
-
> **Bug report.** The steps under Reproduce show the problem — they are not a fix to apply. Fix what Problem describes, then check Verification.
|
|
153
|
-
|
|
154
|
-
## Problem
|
|
155
|
-
What is broken and what it stops someone doing. The observable symptom, and the error if there is one.
|
|
156
|
-
|
|
157
|
-
## Reproduce
|
|
158
|
-
1. The steps that show the bug. These produce the defect — they are not a fix to apply.
|
|
159
|
-
|
|
160
|
-
## Verification
|
|
161
|
-
The behaviour that should have happened, as something the fixer can check.
|
|
162
|
-
|
|
163
|
-
## Gotchas
|
|
164
|
-
- Anything already ruled out, or that made it hard to pin down.
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
## Quality bar
|
|
168
|
-
|
|
169
|
-
- **Write for the crossing.** State what another agent cannot learn from the destination repo.
|
|
170
|
-
- **Verification, when relevant, must be checkable.** Give the command and expected result.
|
|
171
|
-
- **State assumptions where they matter.** Say how the next environment may differ.
|
|
172
|
-
- **One problem per guide.** A lesson from the same session that is not part of this fix goes in
|
|
173
|
-
its own guide only when it is separate work worth handing over.
|
|
174
|
-
- **No session narration.** "First I looked at..." is noise. State the finding.
|
|
175
|
-
- **No secrets.** Redact tokens, keys, and internal hostnames that would not apply elsewhere.
|
|
176
|
-
- Every guide needs a title, summary and explicit kind. A transfer needs no fixed body section.
|
|
177
|
-
- A bug needs Problem and Reproduce. Never give a bug a Steps section.
|
|
178
|
-
- The line above Problem is written by `file_bugs` and the hub's form. It is in the document, not
|
|
179
|
-
added by whatever served it, so an agent that fetched the share link over plain HTTP — with no
|
|
180
|
-
MCP server and no knowledge of Passalong — still reads what the document is before acting on it.
|
|
35
|
+
1. **Decide what is worth knowing.** Go through the session for what the next person could not
|
|
36
|
+
learn from the code alone: how something works, a decision and why, a constraint, what failed and
|
|
37
|
+
why, the command that checks it, a gotcha. Leave out the story of how you got there — "first I
|
|
38
|
+
looked at…" is noise. If the user named the scope (`/passalong-capture <what>`), keep to it.
|
|
39
|
+
2. **Find the project.** `find_projects` with the repo's or product's name (`query`). Pick the one
|
|
40
|
+
it belongs to. If none fits, make one with `save_project`, named for the product, with a one-line
|
|
41
|
+
description — private unless the user named a team — and tell them where it lives (its `space`).
|
|
42
|
+
3. **Read before you write.** `find_projects` with that project's `id` lists its documents.
|
|
43
|
+
`read_document` the README and the page that covers the area you are writing about. Note each
|
|
44
|
+
one's `version`.
|
|
45
|
+
4. **Update the page that already covers it.** `save_document` with the `document` id, the
|
|
46
|
+
`version` you read and the whole new `body`. Change what is no longer true rather than adding a
|
|
47
|
+
contradiction below it; a page says what is true now. Add a new page (`save_document` with `name`
|
|
48
|
+
and `body`, no `document`) only when nothing covers that area yet, and name it for the area
|
|
49
|
+
("Billing", "Deploys"), not for this session. If the change alters what the product is or how it
|
|
50
|
+
is built, update the README too. On a stale-version refusal, read it again and redo your edit on
|
|
51
|
+
top of what is there.
|
|
52
|
+
5. **Add a line to the Log.** `read_document` the project's Log page (make it with `save_document`,
|
|
53
|
+
`name: "Log"`, if there is none) and save it with one line added at the top:
|
|
54
|
+
`- <today, YYYY-MM-DD> — <what changed, in one plain sentence> (<commit, PR or work id>)`.
|
|
55
|
+
6. **Report** which project, which documents you changed or added, the Log line, and the ids of any
|
|
56
|
+
work you wrote down.
|
|
57
|
+
|
|
58
|
+
## Writing for the next reader
|
|
59
|
+
|
|
60
|
+
- **Write for someone with none of this session's history** — a teammate, or an agent taking work on
|
|
61
|
+
this product next week. Concrete beats general: file paths, commands, exact error strings,
|
|
62
|
+
versions.
|
|
63
|
+
- **Checkable when it matters.** A claim about how to verify something gives the command and the
|
|
64
|
+
result to expect.
|
|
65
|
+
- **One area per page.** Put a lesson where someone working on that area would look for it.
|
|
66
|
+
- **No secrets.** Redact tokens, keys and internal hostnames.
|
|
67
|
+
- **Pictures are files.** `add_file` a screenshot or diagram with `project` set to keep it with the
|
|
68
|
+
project's files, and say in the page what it shows.
|