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/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "passalong",
3
- "version": "0.20.0",
4
- "description": "Hand tasks, bugs and finished work to AI coding agents, and get back a write-up with evidence.",
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
- "handoff",
11
- "knowledge-transfer",
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: Distill what was just accomplished in this session into a Passalong transfer guide and publish it, so another repo, machine, agent session, or teammate can implement the same thing. Use when the user says "pass this along", "passalong this", "hand this off", "share this with <repo/person>", "capture this for later", "write a transfer guide", or runs /passalong-capture.
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
- You are turning this session into a **transfer guide**: executable context for an agent in a
9
- different place. The reader is an AI agent (with a developer watching) that has none of this
10
- session's history. Write for execution, not for permanence.
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
- ## Before you write anything
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
- **Check what is already open, and whether a guide is wanted at all.** Run `passalong now` (or
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
- - **The session answers something you hold** — use the MCP `hand_in` tool instead.
18
- Publishing a second guide about it leaves two records of one piece of work. Every hand-in carries
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
- A transfer guide earns its place when the work has to cross a boundary: another repo, another
35
- machine, another agent session, or a teammate without your branch.
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. **Pick the one thing to transfer.** If the user named it (`/passalong-capture <what>` or
40
- "pass along the webhook fix"), that is the scope. Otherwise take the most recent completed
41
- piece of work. A long session usually holds several; do not merge them, and if it is
42
- genuinely unclear which one the user means, ask before writing.
43
- 2. **Reconstruct the story from the session.** What was the problem, what was tried, what failed,
44
- what was decided and why, what finally worked, and how it was verified. Read the diff
45
- (`git diff`, `git log`) only to confirm details; the reasoning is in the transcript.
46
- 3. **Write the guide** with the structure below. Be concrete: file paths, commands, exact error
47
- strings, version numbers. A transfer has no required body sections; keep only the context the
48
- next agent needs.
49
- 4. **Mark context-specific parts** so the receiver can adapt rather than copy. Put
50
- `ASSUMES: <thing>. If <alternative>, <what changes>.` at the start of any step that depends on
51
- this repo's stack, layout, or conventions.
52
- 5. **Save the draft** to `~/.passalong/drafts/<slug>.md` (create the directory if needed), then run:
53
-
54
- ```bash
55
- passalong share ~/.passalong/drafts/<slug>.md --no-edit
56
- ```
57
-
58
- If the user named a person or team ("share this with Ada", "hand this to the platform
59
- team"), add `--to <team>` or `--to <team>/<handle>`; `passalong team` lists the current
60
- team's members and their handles. It prints the guide id on stdout and the share link (and
61
- who it was handed to) on stderr.
62
-
63
- **If what you are capturing is more context for an existing guide** — a missing detail, a step
64
- that needed explaining, or what changed since — add `--follows <that id>`.
65
- That publishes it as a follow-up: its own guide, listed under the original, and handed to
66
- whoever opens the original, person or agent. It travels the other way too — whoever opens the
67
- follow-up gets the guide it came out of, and where that guide has got to — so write it as a
68
- note on that work rather than as a standalone brief. What you did or found while working on a
69
- guide belongs in its `hand_in`, not a follow-up.
70
- 6. **Report** the id (and link). It is Ready and has reached whoever it is for. Then one line on how to use
71
- it on the other side: `passalong take <id>` in the target repo, or "take passalong <id>" to an
72
- agent with the Passalong MCP server. `take` rather than `pull` on purpose: it holds the work as
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.