paput-mcp 4.2.6 → 4.2.7

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
@@ -121,7 +121,7 @@ npx -y paput-mcp setup-ai --codex-only
121
121
 
122
122
  Generated skills:
123
123
 
124
- - `paput-init` - Initialize PaPut usage and inspect unprocessed sessions from local-file-capable AI clients.
124
+ - `paput-harvest` - Harvest reusable knowledge from past local sessions in local-file-capable AI clients. Safe to run repeatedly; skips already-processed sessions.
125
125
  - `paput-capture` - Extract reusable knowledge candidates from the current conversation or a specified topic and add them to pending.
126
126
  - `paput-save` - Review pending candidates first, then save only candidates explicitly approved by the user.
127
127
  - `paput-analyze-discard-policy` - Analyze discarded candidates and save a capture policy used by future captures.
@@ -268,7 +268,8 @@ Remote HTTP MCP.
268
268
 
269
269
  PaPut MCP no longer reads local Claude/Codex session files as MCP tools. When
270
270
  using Claude Code, Codex, or another AI client with local file access, run the
271
- installed `paput-init` skill. The AI client reads its own session files, extracts
271
+ installed `paput-harvest` skill (safe to run repeatedly; it skips
272
+ already-processed sessions). The AI client reads its own session files, extracts
272
273
  reusable knowledge, and submits only the resulting candidates and processed
273
274
  session markers through PaPut MCP.
274
275
 
@@ -53,6 +53,7 @@ Guidance:
53
53
 
54
54
  - Capture candidates are reusable decision criteria, procedures, or principles, so prefer `decision` / `operation` / `principle` when they fit; use `knowledge` for commodity technical know-how.
55
55
  - `decision` / `operation` / `principle` are the primary material for the public AI summary; `knowledge` usually is not.
56
+ - AI-collaboration practices and stances belong here, not in the reject pile: how you structure a task or spec for an AI, your review discipline for AI-generated changes, where you verify versus trust AI output, when you delegate versus do it yourself. Capture the reusable practice as `operation` or the stated stance as `principle` — generalized so it would hold with a different AI tool, on a different project, for someone else to learn. This is the scarcest, most durable axis; do not drop it as workflow chatter.
56
57
  - Leaving a candidate unclassified (no type) is allowed, but classifying it improves analysis and the public profile. Do not force a type when none fits.
57
58
 
58
59
  ## Quality Bar
@@ -73,7 +74,7 @@ Prefer generalized but concrete writing:
73
74
  Do not add these to pending:
74
75
 
75
76
  - Project-specific specifications, screen names, button names, business workflows, operational rules, or local context.
76
- - Personal workflow notes about PRs, GitHub, Codex, Claude, AI review, editors, or OS operations.
77
+ - One-off tool mechanics or configuration: editor / OS / CLI settings, keybindings, which button was clicked, model- or version-specific quirks, project-specific CI wiring, or anecdotes about a single session (for example, "the AI got confused here"). These are commodity even when they mention AI tools — capture the reusable practice or stance instead, not the mechanics. Reusable AI-collaboration practices and stances ARE worth capturing (see the AI-collaboration note under Memo Type); do not discard them as workflow chatter.
77
78
  - Content that third parties cannot understand from the title and body alone.
78
79
  - Rejected designs, anecdotes, work logs, impressions, or decision histories without reusable guidance.
79
80
  - Content semantically close to existing memos or pending candidates.
@@ -1,16 +1,21 @@
1
1
  ---
2
- name: paput-init
3
- description: Use this to initialize PaPut usage and inspect unprocessed local Claude/Codex sessions when the AI client can read local files.
2
+ name: paput-harvest
3
+ description: Use this to harvest reusable knowledge from past local Claude/Codex sessions when the AI client can read local files. Safe to run repeatedly — it skips already-processed sessions and only reviews new ones — so use it both for first-time onboarding and for periodic catch-up. Pay special attention to AI-collaboration practices and stances (operation / principle), the scarce, durable axis.
4
4
  ---
5
5
 
6
- # PaPut Init
6
+ # PaPut Harvest
7
7
 
8
- Initialize PaPut knowledge capture from past local AI sessions.
8
+ Harvest reusable knowledge from past local AI sessions into pending candidates.
9
9
 
10
10
  This skill is for local-file-capable AI clients such as Claude Code or Codex.
11
- PaPut MCP does not read local session files. The AI client should read the
12
- session files directly, then use PaPut MCP only to check processed-session
13
- markers and add or mark reviewed sessions.
11
+ PaPut MCP does not read local session files. The AI client reads the session
12
+ files directly, then uses PaPut MCP only to check processed-session markers and
13
+ add or mark reviewed sessions.
14
+
15
+ Run it whenever you want — it is idempotent. It checks which sessions are already
16
+ processed and reviews only the new ones, so the first run doubles as onboarding
17
+ (nothing is processed yet, so it surveys your history) and later runs are
18
+ periodic catch-up. There is no separate "init" step.
14
19
 
15
20
  ## Steps
16
21
 
@@ -26,6 +31,9 @@ markers and add or mark reviewed sessions.
26
31
  5. Report the count and a short summary of unprocessed sessions to the user.
27
32
  6. Only when the user wants it, read the relevant session transcript directly
28
33
  from the JSONL file and create candidates that meet the extraction criteria.
34
+ While reading, actively look for the AI-collaboration axis (see Extraction
35
+ Criteria) in addition to ordinary technical knowledge — it is easy to miss
36
+ because it shows up as how the work was directed, not as the work itself.
29
37
  7. Before adding candidates with `paput_add_knowledge_candidates`, check that
30
38
  they do not contain project-specific specifications, implementation details,
31
39
  operational rules, code, customer data, or secrets. Duplicate checks against
@@ -33,6 +41,8 @@ markers and add or mark reviewed sessions.
33
41
  using semantic search.
34
42
  8. If reusable candidates exist, call `paput_add_knowledge_candidates` with
35
43
  `source`, `session_id`, `source_session_updated_at`, and the candidates.
44
+ Set `memo_type_keys` on each candidate (see Memo Type below); classify
45
+ AI-collaboration practices as `operation` and stances as `principle`.
36
46
  9. If the session was reviewed but no candidates should be added, call
37
47
  `paput_mark_processed_session` with `source`, `session_id`, and
38
48
  `source_session_updated_at`.
@@ -67,10 +77,27 @@ tail sections first, then ask before reading more.
67
77
 
68
78
  Only add technical knowledge, decision criteria, and procedures that can be reused in other projects.
69
79
 
70
- Do not add these to pending:
80
+ ### Capture the AI-collaboration axis
81
+
82
+ Reusable AI-collaboration practices and stances are first-class material here —
83
+ they are the scarcest, most durable axis and are easy to discard by mistake.
84
+ Capture them as `operation` (practice) or `principle` (stance). Examples:
85
+
86
+ - How you structure a task or spec so an AI implements it correctly.
87
+ - Your review discipline for AI-generated changes — where you always verify
88
+ versus where you trust the output.
89
+ - When you delegate to an AI versus do it yourself.
90
+ - How you decompose work for parallel agents, or recover when an AI goes wrong.
91
+
92
+ The test: would this still hold with a different AI tool, on a different
93
+ project, for someone else to learn? If yes, capture it as `operation` or
94
+ `principle`, generalized one level above the specific session. If it is only
95
+ about this tool's mechanics or this one session's events, exclude it.
96
+
97
+ ### Do not add these to pending
71
98
 
72
99
  - Project-specific specifications, screen names, button names, business workflows, operational rules, or local context.
73
- - Personal workflow notes about PRs, GitHub, Codex, Claude, AI review, editors, or OS operations.
100
+ - One-off tool mechanics or configuration: editor / OS / CLI settings, keybindings, which button was clicked, model- or version-specific quirks, project-specific CI wiring, or anecdotes about a single session (for example, "the AI got confused here"). These are commodity even when they mention AI tools — capture the reusable practice or stance instead, not the mechanics.
74
101
  - Content that third parties cannot understand from the title and body alone.
75
102
  - Rejected designs, anecdotes, work logs, impressions, or decision histories without reusable guidance.
76
103
  - Content semantically close to existing memos or pending candidates.
@@ -79,6 +106,19 @@ Do not add these to pending:
79
106
 
80
107
  When unsure, do not add the candidate. Report that there is no knowledge to save or that the candidate was rejected.
81
108
 
109
+ ## Memo Type
110
+
111
+ Classify each candidate with one or more memo types via `memo_type_keys`:
112
+
113
+ - `decision`: reusable judgment criteria independent of any project.
114
+ - `operation`: operating practices — observability, eval, testing, review, and how you direct and verify AI collaboration.
115
+ - `principle`: a stance you have explicitly stated, generalized above individual decisions, including stances on how to work with AI.
116
+ - `knowledge`: commodity technical know-how, usage, or implementation knowledge.
117
+
118
+ `decision` / `operation` / `principle` are the primary material for the public
119
+ AI summary and the principle synthesizer; `knowledge` usually is not. Prefer the
120
+ durable types when they fit, and do not force a type when none does.
121
+
82
122
  ## Notes
83
123
 
84
124
  - Do not save directly to PaPut.
@@ -39,7 +39,7 @@ Remote MCP connections use OAuth. PaPut issues tokens after you sign in and appr
39
39
  Pending candidates, discarded candidate metadata, processed AI session markers,
40
40
  and capture policies are stored in PaPut API storage, not under `~/.paput`.
41
41
  PaPut MCP does not read local Claude/Codex session files. When you use
42
- `paput-init` in a local-file-capable client such as Claude Code or Codex, that
42
+ `paput-harvest` in a local-file-capable client such as Claude Code or Codex, that
43
43
  client may read its own session files and submit only extracted candidates or
44
44
  processed-session markers to PaPut MCP.
45
45
 
package/docs/tools.md CHANGED
@@ -5,8 +5,8 @@ PaPut MCP is a data-only MCP server. It exposes tools and resources for PaPut da
5
5
  Remote HTTP mode exposes API-backed PaPut tools. Pending candidates, processed
6
6
  session markers, and capture policies are stored by the PaPut API. PaPut MCP
7
7
  does not expose tools that read local Claude/Codex session files; local-file-
8
- capable clients can read those files themselves through the `paput-init` skill
9
- workflow and then submit extracted candidates through MCP.
8
+ capable clients can read those files themselves through the `paput-harvest`
9
+ skill workflow and then submit extracted candidates through MCP.
10
10
 
11
11
  ## Confirmation Policy
12
12
 
@@ -184,5 +184,5 @@ The capture policy is not saved as a PaPut memo. It is stored by the PaPut API
184
184
  and is available through Remote HTTP MCP.
185
185
 
186
186
  For past-session import, a local-file-capable AI client should read its own
187
- Claude/Codex session files through the `paput-init` skill, then call
187
+ Claude/Codex session files through the `paput-harvest` skill, then call
188
188
  `paput_add_knowledge_candidates` or `paput_mark_processed_session`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "paput-mcp",
3
- "version": "4.2.6",
3
+ "version": "4.2.7",
4
4
  "description": "PaPut MCP Server",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",