paput-mcp 4.2.5 → 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 +3 -2
- package/dist/cli/skills/paput-capture/SKILL.md +2 -1
- package/dist/cli/skills/paput-dashboard-analysis/SKILL.md +7 -4
- package/dist/cli/skills/{paput-init → paput-harvest}/SKILL.md +49 -9
- package/dist/handlers/get-dashboard-analysis-context/handler.js +6 -4
- package/dist/handlers/get-dashboard-analysis-context/handler.js.map +1 -1
- package/docs/privacy-policy.md +1 -1
- package/docs/tools.md +3 -3
- package/package.json +1 -1
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-
|
|
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-
|
|
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
|
-
-
|
|
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.
|
|
@@ -9,6 +9,8 @@ Analyze the user's PaPut dashboard and goals. Use this skill when the user asks
|
|
|
9
9
|
|
|
10
10
|
Read the user through the JUDGMENT axis, not raw volume. The durable, hard-to-commoditize part of what they accumulate is their judgment and practice — captured as `memo_type`: `decision` (judgment criteria), `operation` (operating practices), `principle` (stated stances). `knowledge` is commodity. `structuredContent.dashboard_summary.memo_type_counts` holds the per-type accumulation; assess the user by how thick those three durable axes are, with categories as a secondary lens for the domains they work in.
|
|
11
11
|
|
|
12
|
+
The judgment axis is the LENS, not a replacement for goal analysis. The dashboard's core job is "where am I against my goals", so keep goals first-class: read each active goal THROUGH the axis — which judgment/practice/principle axis that goal requires, and whether that axis is currently thick or thin. Do not drop the goal overview in favor of axis-only talk.
|
|
13
|
+
|
|
12
14
|
## Workflow
|
|
13
15
|
|
|
14
16
|
1. Call `paput_get_dashboard_analysis_context`.
|
|
@@ -21,12 +23,12 @@ Read the user through the JUDGMENT axis, not raw volume. The durable, hard-to-co
|
|
|
21
23
|
|
|
22
24
|
Include these points when relevant, read through the decision / operation / principle axes:
|
|
23
25
|
|
|
24
|
-
- Current position — which judgment axes are thick, which are thin (from `memo_type_counts`).
|
|
26
|
+
- Current position — which judgment axes are thick, which are thin (from `memo_type_counts`), AND a goal overview: name the active goals and, for each, the judgment/practice/principle axis it requires and whether that axis is currently thick or thin. The `current_summary` must keep this goal overview, not just axis talk.
|
|
25
27
|
- Strengths — the judgment criteria and operating practices the user has accumulated (decision / operation / principle), with the domains (categories) they show up in as supporting context. knowledge alone is not a strength.
|
|
26
28
|
- Areas that have been growing recently.
|
|
27
29
|
- Thin or underdeveloped axes — name the thin memo_type (e.g. principle is thin) and what that means, not just thin categories.
|
|
28
|
-
-
|
|
29
|
-
- What to do next to thicken the thin durable axis (e.g. distill recurring decisions into principles, capture operating practices / eval / review as operation), rather than just "learn more".
|
|
30
|
+
- Gaps against active goals — for each active goal, the judgment axis it needs that is still thin (e.g. "G2 needs principle, which is the thinnest axis"). This is the goal-alignment view; tie it to `goal_ids`.
|
|
31
|
+
- What to do next to thicken the thin durable axis the goals require (e.g. distill recurring decisions into principles, capture operating practices / eval / review as operation), rather than just "learn more". Link each suggestion to the goal it serves via `goal_ids`.
|
|
30
32
|
- Phrasing suitable for a skill sheet or career history.
|
|
31
33
|
|
|
32
34
|
## Rules
|
|
@@ -36,10 +38,11 @@ Include these points when relevant, read through the decision / operation / prin
|
|
|
36
38
|
- Treat archived goals as historical context.
|
|
37
39
|
- Do not recalculate dashboard continuity from activities. Use the dashboard summary values returned by the API.
|
|
38
40
|
- Frame current position, strengths, and thin areas by decision / operation / principle thickness — not by how many memos or categories accumulated. Use categories as a secondary lens for the domains, not the main axis.
|
|
41
|
+
- Keep goals first-class. The `current_summary` must include a goal overview (the active goals, and for each the judgment axis it requires and whether it is thick or thin). At least one `weak_areas` item and the `next_knowledge_suggestions` must connect a thin axis to the goal it blocks, via `goal_ids`. The axis is the lens for goal alignment, not a replacement for it.
|
|
39
42
|
- `knowledge`-type memos are commodity. Do not present knowledge volume as a strength on its own.
|
|
40
43
|
- When the thin axis is `principle` or `operation`, say so plainly and make the next step about thickening it (distilling decisions into principles, capturing eval / observability / review as operation).
|
|
41
44
|
- In each saved item's `description`, speak in the judgment/practice/principle axis (which memo_type backs the strength, which type is thin). The output fields are unchanged; the axis is carried in the wording.
|
|
42
|
-
- `category_names` must be EXACT names the user actually uses — take them from `structuredContent.dashboard_summary.category_item_counts` (the user's own categories), falling back to `structuredContent.categories` (the global list) only for exact spelling.
|
|
45
|
+
- `category_names` must be EXACT names the user actually uses — take them from `structuredContent.dashboard_summary.category_item_counts` (the user's own categories), falling back to `structuredContent.categories` (the global list) only for exact spelling. DO populate them with the real categories that genuinely apply to the item (e.g. a deployment/observability strength should list the user's actual categories like Datadog / OpenSearch / ECS when present) — do not default to empty when real matches exist. Only leave `category_names` empty when none of the user's categories match. Never invent, translate, or paraphrase a category name (e.g. do not write "可観測性" or "CI/開発基盤" if they are not in those lists); an empty list is better than an approximate name.
|
|
43
46
|
- When saving, map the generated result to:
|
|
44
47
|
- `current_summary`
|
|
45
48
|
- `strengths`
|
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: paput-
|
|
3
|
-
description: Use this to
|
|
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
|
|
6
|
+
# PaPut Harvest
|
|
7
7
|
|
|
8
|
-
|
|
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
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
|
|
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
|
-
-
|
|
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.
|
|
@@ -97,6 +97,8 @@ function buildPrompt(context) {
|
|
|
97
97
|
|
|
98
98
|
Lead with the judgment axis, not raw volume. The durable, hard-to-commoditize part of what the user accumulates is their JUDGMENT and PRACTICE — captured as memo_type: decision (judgment criteria), operation (operating practices: observability, eval, testing, review), and principle (stated stances). knowledge is commodity. So assess the user by how thick those three axes are, not by how many memos or categories they have. structuredContent.dashboard_summary.memo_type_counts holds the per-type accumulation.
|
|
99
99
|
|
|
100
|
+
The judgment axis is the LENS, not a replacement for goal analysis. The dashboard's core job is "where am I against my goals", so keep goals first-class: read each active goal THROUGH the axis — which judgment/practice/principle axis that goal requires, and whether it is currently thick or thin. Do not drop the goal overview in favor of axis-only talk.
|
|
101
|
+
|
|
100
102
|
Assumptions:
|
|
101
103
|
- Do not recalculate dashboard continuity from activities. Use the summary values returned by the API.
|
|
102
104
|
- Treat active goals as the current basis for analysis and archived goals as historical context.
|
|
@@ -118,15 +120,15 @@ Context summary:
|
|
|
118
120
|
- Saved analysis: ${context.hasSavedAnalysis ? 'available' : 'not available'}
|
|
119
121
|
|
|
120
122
|
Include these analysis points:
|
|
121
|
-
1. The user's current position, read through the judgment/practice/principle axes (which axes are thick, which are thin).
|
|
123
|
+
1. The user's current position, read through the judgment/practice/principle axes (which axes are thick, which are thin), AND a goal overview: name the active goals and, for each, the axis it requires and whether that axis is thick or thin. The current_summary must keep this goal overview, not just axis talk.
|
|
122
124
|
2. Strengths — the judgment criteria and operating practices the user has accumulated (decision / operation / principle), with the domains (categories) they show up in as supporting context.
|
|
123
125
|
3. Areas that have been growing recently.
|
|
124
126
|
4. Thin or underdeveloped axes — name the memo_type that is thin (e.g. principle is thin) and what that means, not just thin categories.
|
|
125
|
-
5.
|
|
126
|
-
6. What to do next to thicken the thin durable axis (e.g. distill recurring decisions into principles, capture operating practices), rather than just "learn more".
|
|
127
|
+
5. Gaps against active goals — for each active goal, the judgment axis it needs that is still thin (e.g. "G2 needs principle, which is the thinnest axis"). This is the goal-alignment view; connect it to goal_ids.
|
|
128
|
+
6. What to do next to thicken the thin durable axis the goals require (e.g. distill recurring decisions into principles, capture operating practices), rather than just "learn more". Link each suggestion to the goal it serves via goal_ids.
|
|
127
129
|
7. Phrasing that can be used in a skill sheet or career history.
|
|
128
130
|
|
|
129
131
|
If saving the result, build values suitable for paput_update_dashboard_analysis: current_summary, strengths, growing_areas, weak_areas, next_knowledge_suggestions, and analyzed_at. strengths, growing_areas, and weak_areas should include title, description, category_names, memo_count, and goal_ids — and in each description speak in the judgment/practice/principle axis (e.g. which memo_type backs the strength, which type is thin). next_knowledge_suggestions should include title, reason, priority, category_names, and goal_ids.
|
|
130
|
-
category_names must be EXACT names the user actually uses — take them from structuredContent.dashboard_summary.category_item_counts (the user's own categories), falling back to structuredContent.categories (the global list) only for exact spelling.
|
|
132
|
+
category_names must be EXACT names the user actually uses — take them from structuredContent.dashboard_summary.category_item_counts (the user's own categories), falling back to structuredContent.categories (the global list) only for exact spelling. DO populate them with the real categories that genuinely apply to the item (e.g. a deployment/observability strength should list the user's actual categories like Datadog / OpenSearch / ECS when present); do not default to empty when real matches exist. Only leave category_names empty when none of the user's categories match. Never invent, translate, or paraphrase a category name; an empty list is better than an approximate name.`;
|
|
131
133
|
}
|
|
132
134
|
//# sourceMappingURL=handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/handlers/get-dashboard-analysis-context/handler.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/handlers/get-dashboard-analysis-context/handler.ts"],"names":[],"mappings":"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"}
|
package/docs/privacy-policy.md
CHANGED
|
@@ -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-
|
|
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-
|
|
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-
|
|
187
|
+
Claude/Codex session files through the `paput-harvest` skill, then call
|
|
188
188
|
`paput_add_knowledge_candidates` or `paput_mark_processed_session`.
|