@ghostpaw/questlog 0.9.1 → 0.10.1

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/SKILL.md CHANGED
@@ -1,18 +1,35 @@
1
1
  ---
2
2
  name: questlog
3
- description: "Manage local tasks, calendar commitments, and recurring work. Use when planning, executing, reviewing, or organizing work."
3
+ description: "Use the release binary ghostpaw-questlog to manage local tasks, calendar commitments, and recurring work. Use when planning, executing, reviewing, or organizing work."
4
4
  license: "MIT"
5
- compatibility: "Node.js 24 or newer. MCP stdio or ghostpaw-questlog CLI."
5
+ compatibility: "Release binary ghostpaw-questlog (no runtime needed); MCP stdio via ghostpaw-questlog mcp."
6
6
  ---
7
7
 
8
8
  # questlog
9
9
 
10
- No install? Use `npx -y @ghostpaw/questlog <command>`.
10
+ ## Install
11
+
12
+ Linux/macOS:
13
+
14
+ ```sh
15
+ curl -fsSL https://raw.githubusercontent.com/GhostPawJS/questlog/main/install.sh | sh
16
+ ```
17
+
18
+ Installs `~/.local/bin/ghostpaw-questlog` after checking SHA256SUMS.
19
+
20
+ Windows x64 (PowerShell):
21
+
22
+ ```powershell
23
+ irm https://raw.githubusercontent.com/GhostPawJS/questlog/main/install.ps1 | iex
24
+ ```
25
+
26
+ Run tools as `ghostpaw-questlog ...`; use `~/.local/bin/ghostpaw-questlog` if it is not on PATH.
27
+
11
28
  `questlog` and `ghostpaw-questlog` are the same binary.
12
29
 
13
30
  - `questlog search <words>` before `add` to avoid duplicates.
14
- - `questlog add --title "..." --tag a,b --due tomorrow`
15
- - `questlog list [--view <view>]`: questlines, quests.active, quests.available, quests.blocked, quests.deferred, quests.due_soon, quests.in_progress, quests.missed_scheduled, quests.open, quests.overdue, quests.resolved, quests.scheduled_for_day, quests.scheduled_now, repeatables.due_anchors, rumors.
31
+ - `ghostpaw-questlog add "..." --tag a,b --due tomorrow`
32
+ - `questlog list [--view <view>]`: deliveries, questlines, quests.active, quests.available, quests.blocked, quests.deferred, quests.due_soon, quests.in_progress, quests.missed_scheduled, quests.open, quests.overdue, quests.resolved, quests.scheduled_for_day, quests.scheduled_now, repeatables.due_anchors, rumors.
16
33
  - `questlog done <id> --outcome "..."`
17
34
  - `questlog search <words>`
18
35
  - `questlog show <id>`
@@ -20,6 +37,7 @@ No install? Use `npx -y @ghostpaw/questlog <command>`.
20
37
  - Exit codes: 0 ok / 1 error / 2 usage / 3 needs input.
21
38
  - Database: `~/.ghostpaw/questlog.db`; override with `--db` or `GHOSTPAW_QUESTLOG_DB`.
22
39
  - Use one database per agent or project.
40
+ - Webhooks: `questlog hook add <url>`, `questlog tick --dry-run`, `questlog watch`. Read `questlog skill webhooks` for events, signing, verification, and cron setup.
23
41
 
24
42
  ## Appendix: MCP and tool calls
25
43
 
@@ -29,10 +47,32 @@ Questlog manages local tasks, calendar commitments, and recurring work. Search b
29
47
 
30
48
  MCP: connect to ghostpaw-questlog, then call a tool by name with its JSON arguments.
31
49
 
32
- CLI: `ghostpaw-questlog call <tool> '<JSON object>'` or `ghostpaw-questlog <tool> --parameter value` (without a global install: `npx -y @ghostpaw/questlog <tool> ...`).
50
+ CLI: `ghostpaw-questlog call <tool> '<JSON object>'` or `ghostpaw-questlog <tool> --parameter value`.
33
51
 
34
52
  Inspect schemas with `ghostpaw-questlog describe <tool>`. Use `--db <path>` to select a database.
35
53
 
54
+ ### manage_hooks
55
+
56
+ List or remove outbound webhook targets, run a tick, or inspect pending and failed deliveries.
57
+
58
+ Use when: Use to operate configured outbound webhooks. Add and test targets with the CLI.
59
+
60
+ Not for: Use quest tools to change work itself.
61
+
62
+ Writes: writes_state.
63
+
64
+ | Parameter | Type | Required | Values / description |
65
+ | --- | --- | --- | --- |
66
+ | action | string | yes | list, remove, tick, deliveries. Operation. |
67
+ | id | integer | no | Target id. |
68
+ | dry_run | boolean | no | Preview only. |
69
+
70
+ ```sh
71
+ ghostpaw-questlog call manage_hooks '{"action":"list"}'
72
+ ghostpaw-questlog call manage_hooks '{"action":"remove","id":1}'
73
+ ghostpaw-questlog call manage_hooks '{"action":"tick"}'
74
+ ```
75
+
36
76
  ### search_questlog
37
77
 
38
78
  Search quests and rumors by text when you need to find an existing item before inspecting or changing it.
@@ -50,6 +90,10 @@ Read-only.
50
90
  | kinds | array | no | Optional entity kinds to search. |
51
91
  | mode | string | no | browse, identify_one. Whether to browse results normally or ask for clarification when several matches are found. |
52
92
 
93
+ ```sh
94
+ ghostpaw-questlog call search_questlog '{"query":"release"}'
95
+ ```
96
+
53
97
  ### review_questlog
54
98
 
55
99
  Review one operational questlog surface such as available quests, open rumors, blocked work, or due repeatable anchors.
@@ -62,10 +106,18 @@ Read-only.
62
106
 
63
107
  | Parameter | Type | Required | Values / description |
64
108
  | --- | --- | --- | --- |
65
- | view | string | yes | questlines, quests.active, quests.available, quests.blocked, quests.deferred, quests.due_soon, quests.in_progress, quests.missed_scheduled, quests.open, quests.overdue, quests.resolved, quests.scheduled_for_day, quests.scheduled_now, repeatables.due_anchors, rumors. Which operational review surface to return. |
109
+ | view | string | yes | deliveries, questlines, quests.active, quests.available, quests.blocked, quests.deferred, quests.due_soon, quests.in_progress, quests.missed_scheduled, quests.open, quests.overdue, quests.resolved, quests.scheduled_for_day, quests.scheduled_now, repeatables.due_anchors, rumors. Which operational review surface to return. |
66
110
  | filters | object | no | Optional filters for supported review surfaces. |
111
+ | filters.questlineId | integer | no | Optional questline id used by quest views. |
112
+ | filters.tagNames | array | no | Optional tag names used by quest views. |
113
+ | filters.includeDeleted | boolean | no | Whether deleted quests should be included in quest views. |
114
+ | filters.dayAt | integer | no | UTC timestamp within the day to review for scheduled-for-day. |
67
115
  | now | integer | no | Optional evaluation timestamp for time-sensitive views. |
68
116
 
117
+ ```sh
118
+ ghostpaw-questlog call review_questlog '{"view":"deliveries"}'
119
+ ```
120
+
69
121
  ### inspect_questlog_item
70
122
 
71
123
  Inspect one specific questlog item in depth and return its richer structured detail and important related refs.
@@ -79,9 +131,15 @@ Read-only.
79
131
  | Parameter | Type | Required | Values / description |
80
132
  | --- | --- | --- | --- |
81
133
  | target | object | yes | The specific item to inspect. |
134
+ | target.kind | string | yes | quest, questline, repeatable_quest, rumor. The kind of item to inspect. |
135
+ | target.id | integer | yes | The numeric id of the item to inspect. |
82
136
  | detailLevel | string | no | compact, full. How much detail to return. |
83
137
  | now | integer | no | Optional evaluation timestamp for time-sensitive detail. |
84
138
 
139
+ ```sh
140
+ ghostpaw-questlog call inspect_questlog_item '{"target":{"kind":"quest","id":1}}'
141
+ ```
142
+
85
143
  ### capture_rumor
86
144
 
87
145
  Capture uncertain incoming work as a rumor so it can be triaged later without prematurely turning it into committed execution.
@@ -98,6 +156,10 @@ Writes: writes_state.
98
156
  | details | string | no | Optional supporting context that explains why the rumor might matter. |
99
157
  | now | integer | no | Optional creation timestamp for the rumor. |
100
158
 
159
+ ```sh
160
+ ghostpaw-questlog call capture_rumor '{"title":"Review release notes"}'
161
+ ```
162
+
101
163
  ### shape_work
102
164
 
103
165
  Create a quest (with timing, tags, and objective in one call), create a questline, settle a rumor into concrete work, or manage quest-questline membership. Use create_quest for clear commitments — include tags and timing directly to avoid follow-up calls.
@@ -114,7 +176,11 @@ Writes: writes_state.
114
176
  | questId | integer | no | Quest to attach or detach. |
115
177
  | questlineId | integer | no | Questline that should receive the quest. |
116
178
  | quest | object | no | |
179
+ | quest.title | string | yes | Title for the new quest. |
180
+ | quest.objective | string | yes | Objective for the new quest. |
117
181
  | questline | object | no | |
182
+ | questline.title | string | yes | Questline title. |
183
+ | questline.description | string | no | Optional questline description. |
118
184
  | rumorId | integer | no | Rumor to settle, dismiss, or reopen. |
119
185
  | dismissedAt | integer | no | Optional dismissal timestamp. |
120
186
  | settledAt | integer | no | Optional settlement timestamp. |
@@ -123,6 +189,12 @@ Writes: writes_state.
123
189
  | title | string | no | New title for the update_rumor action. |
124
190
  | details | string | no | New or enriched context text for the update_rumor action. |
125
191
 
192
+ ```sh
193
+ ghostpaw-questlog call shape_work '{"action":"attach_quest_to_questline","questId":1,"questlineId":1}'
194
+ ghostpaw-questlog call shape_work '{"action":"create_quest","quest":{"title":"Review release notes","objective":"Check changes against the release"}}'
195
+ ghostpaw-questlog call shape_work '{"action":"create_questline","questline":{"title":"Review release notes"}}'
196
+ ```
197
+
126
198
  ### plan_quest
127
199
 
128
200
  Refine a quest by revising its objective before actual start or by changing its temporal planning fields.
@@ -146,6 +218,11 @@ Writes: writes_state.
146
218
  | estimateSeconds | integer | no | Optional active-effort estimate in seconds. |
147
219
  | now | integer | no | Optional update timestamp. |
148
220
 
221
+ ```sh
222
+ ghostpaw-questlog call plan_quest '{"action":"revise_objective","questId":1,"objective":"Check changes against the release"}'
223
+ ghostpaw-questlog call plan_quest '{"action":"set_time","questId":1}'
224
+ ```
225
+
149
226
  ### run_quest
150
227
 
151
228
  Run quest lifecycle actions such as starting, logging effort, finishing, abandoning, or abandoning and spawning follow-up quests atomically.
@@ -168,6 +245,12 @@ Writes: writes_state.
168
245
  | resolvedAt | integer | no | Optional resolved timestamp for finish or abandon actions. |
169
246
  | followups | array | no | Follow-up quests to create atomically. Required for abandon_and_spawn_followups. |
170
247
 
248
+ ```sh
249
+ ghostpaw-questlog call run_quest '{"action":"start","questId":1}'
250
+ ghostpaw-questlog call run_quest '{"action":"log_effort","questId":1,"effortSeconds":1}'
251
+ ghostpaw-questlog call run_quest '{"action":"finish","questId":1,"outcome":"release"}'
252
+ ```
253
+
171
254
  ### organize_work
172
255
 
173
256
  Organize grouping and dependency structure by updating questlines or changing hard unlock prerequisites between concrete quests.
@@ -192,6 +275,12 @@ Writes: writes_state.
192
275
  | fromQuestIds | array | no | Full prerequisite quest id set. |
193
276
  | now | integer | no | Optional timestamp. |
194
277
 
278
+ ```sh
279
+ ghostpaw-questlog call organize_work '{"action":"add_unlock","fromQuestId":1,"toQuestId":2}'
280
+ ghostpaw-questlog call organize_work '{"action":"archive_questline","questlineId":1}'
281
+ ghostpaw-questlog call organize_work '{"action":"remove_unlock","fromQuestId":1,"toQuestId":2}'
282
+ ```
283
+
195
284
  ### manage_repeatable
196
285
 
197
286
  Manage recurring work definitions by creating, updating, previewing, spawning, or archiving repeatable quests.
@@ -207,6 +296,10 @@ Writes: writes_state.
207
296
  | action | string | yes | archive, create, preview_due, spawn_due, update. Action to perform. |
208
297
  | repeatableQuestId | integer | no | Repeatable quest to archive or update. |
209
298
  | repeatableQuest | object | no | |
299
+ | repeatableQuest.title | string | yes | Title for the new repeatable quest. |
300
+ | repeatableQuest.objective | string | yes | Objective for the new repeatable quest. |
301
+ | repeatableQuest.rrule | string | yes | RRULE describing recurrence. |
302
+ | repeatableQuest.anchorAt | integer | yes | Recurrence anchor timestamp. |
210
303
  | title | string | no | Optional new title for the update action. |
211
304
  | objective | string | no | Optional new objective for the update action. |
212
305
  | questlineId | integer | no | Optional new questline id. |
@@ -221,6 +314,12 @@ Writes: writes_state.
221
314
  | archivedAt | integer | no | Optional archive timestamp. |
222
315
  | now | integer | no | Evaluation or update timestamp. |
223
316
 
317
+ ```sh
318
+ ghostpaw-questlog call manage_repeatable '{"action":"archive","repeatableQuestId":1}'
319
+ ghostpaw-questlog call manage_repeatable '{"action":"create","repeatableQuest":{"title":"Review release notes","objective":"Check changes against the release","rrule":"FREQ=WEEKLY","anchorAt":1800000000000}}'
320
+ ghostpaw-questlog call manage_repeatable '{"action":"preview_due"}'
321
+ ```
322
+
224
323
  ### tag_work
225
324
 
226
325
  Classify work by adding, removing, or replacing tags on quests and by replacing the future tag template set on repeatable quests.
@@ -235,9 +334,17 @@ Writes: writes_state.
235
334
  | --- | --- | --- | --- |
236
335
  | action | string | yes | add, remove, replace. Action to perform. |
237
336
  | target | object | yes | |
337
+ | target.id | integer | yes | Target entity id. |
338
+ | target.kind | string | yes | quest, repeatable_quest. Target kind. |
238
339
  | tagNames | array | yes | Tag names to add, remove, or replace. |
239
340
  | now | integer | no | Optional timestamp for the tag mutation. |
240
341
 
342
+ ```sh
343
+ ghostpaw-questlog call tag_work '{"action":"add","target":{"id":1,"kind":"quest"},"tagNames":["release"]}'
344
+ ghostpaw-questlog call tag_work '{"action":"remove","target":{"id":1,"kind":"quest"},"tagNames":["release"]}'
345
+ ghostpaw-questlog call tag_work '{"action":"replace","target":{"id":1,"kind":"quest"},"tagNames":["release"]}'
346
+ ```
347
+
241
348
  ### reward_work
242
349
 
243
350
  Manage rewards by adding, updating, removing, or claiming quest rewards, or by replacing future reward templates on repeatable quests.
@@ -252,11 +359,22 @@ Writes: writes_state.
252
359
  | --- | --- | --- | --- |
253
360
  | action | string | yes | add, claim, remove, replace_repeatable_template, update. Action to perform. |
254
361
  | target | object | yes | |
362
+ | target.id | integer | yes | Target entity id. |
363
+ | target.kind | string | yes | quest, reward, repeatable_quest. Target kind. |
255
364
  | reward | object | no | |
365
+ | reward.kind | string | yes | Reward kind. |
366
+ | reward.name | string | yes | Reward name. |
367
+ | reward.now | integer | no | Optional update timestamp for the update action. |
256
368
  | rewards | array | no | Full future reward template set. Required for replace_repeatable_template. |
257
369
  | claimedAt | integer | no | Optional claim timestamp. |
258
370
  | now | integer | no | Optional timestamp for removal or template replacement. |
259
371
 
372
+ ```sh
373
+ ghostpaw-questlog call reward_work '{"action":"add","target":{"id":1,"kind":"quest"},"reward":{"kind":"release","name":"release"}}'
374
+ ghostpaw-questlog call reward_work '{"action":"claim","target":{"id":1,"kind":"quest"}}'
375
+ ghostpaw-questlog call reward_work '{"action":"remove","target":{"id":1,"kind":"quest"}}'
376
+ ```
377
+
260
378
  ### retire_work
261
379
 
262
380
  Hide an item from normal active operation without rewriting history by soft-deleting a rumor, quest, questline, or repeatable quest.
@@ -271,35 +389,42 @@ Writes: writes_state.
271
389
  | --- | --- | --- | --- |
272
390
  | action | string | yes | hide. The retirement action to perform. |
273
391
  | target | object | yes | The target to hide. |
392
+ | target.kind | string | yes | quest, questline, repeatable_quest, rumor. The kind of item to hide. |
393
+ | target.id | integer | yes | The numeric id of the item to hide. |
274
394
  | deletedAt | integer | no | Optional timestamp to record when the item became hidden. |
275
395
 
396
+ ```sh
397
+ ghostpaw-questlog call retire_work '{"action":"hide","target":{"kind":"quest","id":1}}'
398
+ ```
399
+
276
400
  ### Workflow guides
277
401
 
278
- - [archive-delete-and-prune](skills/questlog/references/archive-delete-and-prune.md): Choose the right retirement action for each kind of work so history stays honest and hiding does not get confused with archival or terminal execution truth.
279
- - [choose-work-shape](skills/questlog/references/choose-work-shape.md): Choose the right structure for new work by separating uncertainty, one-shot execution, multi-step arcs, and recurring patterns.
280
- - [clarify-ambiguous-requests](skills/questlog/references/clarify-ambiguous-requests.md): Treat ambiguity as a real state, capture uncertainty honestly, and only commit work structure once the next executable shape is clear.
281
- - [close-work-and-claim-outcomes](skills/questlog/references/close-work-and-claim-outcomes.md): Close work with the correct terminal lifecycle action, then handle any concrete reward claim as a separate explicit step.
282
- - [create-concrete-quest](skills/questlog/references/create-concrete-quest.md): Create real, bounded executable quests only when the objective is concrete enough to execute without interpretive guesswork.
283
- - [detect-slips-and-staleness](skills/questlog/references/detect-slips-and-staleness.md): Detect work that is slipping or going stale by reading overdue, deferred, in-progress, and related operational views before choosing one recovery move.
284
- - [escalate-and-unblock](skills/questlog/references/escalate-and-unblock.md): Diagnose blockers honestly, then remove or realign hard gates when the model is wrong instead of treating every delay as generic escalation theater.
285
- - [frame-initiative-questline](skills/questlog/references/frame-initiative-questline.md): Use questlines for shared initiative context, then attach concrete quests and maintain the structure without confusing one quest with one arc.
286
- - [handle-exceptions-and-weird-cases](skills/questlog/references/handle-exceptions-and-weird-cases.md): Handle weird cases by diagnosing the actual tool outcome, routing into clarification or recovery when needed, and refusing to fake a clean normal-state story.
287
- - [intake-triage](skills/questlog/references/intake-triage.md): Triage new asks, ideas, and vague incoming work into the right next step without prematurely committing execution structure.
288
- - [maintain-clear-ownership](skills/questlog/references/maintain-clear-ownership.md): Keep ownership explicit through quest content and classification because Questlog does not provide a separate assignee field or ownership tool.
289
- - [manage-approvals-and-promises](skills/questlog/references/manage-approvals-and-promises.md): Treat approvals and commitments as modeled work with timing and dependencies instead of burying them as vague narrative promises.
290
- - [plan-successor-work](skills/questlog/references/plan-successor-work.md): Create explicit successor work after closure by spawning follow-ups or shaping new work, while keeping uncertain next steps in intake instead of faking certainty.
291
- - [plan-time-correctly](skills/questlog/references/plan-time-correctly.md): Use quest planning fields honestly so availability, due pressure, and schedule intent stay meaningful instead of getting collapsed into one generic date.
292
- - [prioritize-across-streams](skills/questlog/references/prioritize-across-streams.md): Prioritize across competing work streams by reading real candidate sets, distinguishing available from blocked work, and then reflecting the choice in planning.
293
- - [protect-capacity-and-focus](skills/questlog/references/protect-capacity-and-focus.md): Protect capacity and focus by reading the real in-progress and scheduled-now load, then using planning to rebalance instead of silently overcommitting.
294
- - [recover-from-modeling-mistakes](skills/questlog/references/recover-from-modeling-mistakes.md): Recover from modeling mistakes by diagnosing the exact current state first, then applying the smallest honest corrective tool instead of rewriting history blindly.
295
- - [report-status-and-manage-expectations](skills/questlog/references/report-status-and-manage-expectations.md): Build status reporting from the real questlog state, separating available, blocked, in-progress, slipping, and resolved work without relying on memory.
296
- - [revise-or-reshape-commitment](skills/questlog/references/revise-or-reshape-commitment.md): Revise a quest objective before execution starts, but reshape commitments honestly with lifecycle tools once real execution history exists.
297
- - [run-operational-review](skills/questlog/references/run-operational-review.md): Drive daily or weekly operational review from structured list views, then move from diagnosis into actual planning or execution changes.
298
- - [run-recurring-rhythms](skills/questlog/references/run-recurring-rhythms.md): Model recurring work as repeatable definitions that spawn fresh concrete quests over time instead of living forever as one immortal task.
299
- - [search-and-retrieve-context](skills/questlog/references/search-and-retrieve-context.md): Find relevant questlog context quickly, then switch from discovery to exact inspection without confusing free-text search with structured review surfaces.
300
- - [sequence-with-unlocks](skills/questlog/references/sequence-with-unlocks.md): Model hard sequencing with unlocks between concrete quests so blocked and available work stay truthful and reviewable.
301
- - [settle-rumor-into-structure](skills/questlog/references/settle-rumor-into-structure.md): Turn a ready rumor into committed quest or questline structure without losing provenance or pretending vague intake is settled.
302
- - [tag-and-filter-portfolios](skills/questlog/references/tag-and-filter-portfolios.md): Use tags for cross-cutting classification and portfolio filtering without confusing tags for status, timing, or dependency modeling.
402
+ - `ghostpaw-questlog skill webhooks` ([webhooks](skills/questlog/references/webhooks.md)): Configure signed outbound event webhooks and verify deliveries.
403
+ - `ghostpaw-questlog skill archive-delete-and-prune` ([archive-delete-and-prune](skills/questlog/references/archive-delete-and-prune.md)): Choose the right retirement action for each kind of work so history stays honest and hiding does not get confused with archival or terminal execution truth.
404
+ - `ghostpaw-questlog skill choose-work-shape` ([choose-work-shape](skills/questlog/references/choose-work-shape.md)): Choose the right structure for new work by separating uncertainty, one-shot execution, multi-step arcs, and recurring patterns.
405
+ - `ghostpaw-questlog skill clarify-ambiguous-requests` ([clarify-ambiguous-requests](skills/questlog/references/clarify-ambiguous-requests.md)): Treat ambiguity as a real state, capture uncertainty honestly, and only commit work structure once the next executable shape is clear.
406
+ - `ghostpaw-questlog skill close-work-and-claim-outcomes` ([close-work-and-claim-outcomes](skills/questlog/references/close-work-and-claim-outcomes.md)): Close work with the correct terminal lifecycle action, then handle any concrete reward claim as a separate explicit step.
407
+ - `ghostpaw-questlog skill create-concrete-quest` ([create-concrete-quest](skills/questlog/references/create-concrete-quest.md)): Create real, bounded executable quests only when the objective is concrete enough to execute without interpretive guesswork.
408
+ - `ghostpaw-questlog skill detect-slips-and-staleness` ([detect-slips-and-staleness](skills/questlog/references/detect-slips-and-staleness.md)): Detect work that is slipping or going stale by reading overdue, deferred, in-progress, and related operational views before choosing one recovery move.
409
+ - `ghostpaw-questlog skill escalate-and-unblock` ([escalate-and-unblock](skills/questlog/references/escalate-and-unblock.md)): Diagnose blockers honestly, then remove or realign hard gates when the model is wrong instead of treating every delay as generic escalation theater.
410
+ - `ghostpaw-questlog skill frame-initiative-questline` ([frame-initiative-questline](skills/questlog/references/frame-initiative-questline.md)): Use questlines for shared initiative context, then attach concrete quests and maintain the structure without confusing one quest with one arc.
411
+ - `ghostpaw-questlog skill handle-exceptions-and-weird-cases` ([handle-exceptions-and-weird-cases](skills/questlog/references/handle-exceptions-and-weird-cases.md)): Handle weird cases by diagnosing the actual tool outcome, routing into clarification or recovery when needed, and refusing to fake a clean normal-state story.
412
+ - `ghostpaw-questlog skill intake-triage` ([intake-triage](skills/questlog/references/intake-triage.md)): Triage new asks, ideas, and vague incoming work into the right next step without prematurely committing execution structure.
413
+ - `ghostpaw-questlog skill maintain-clear-ownership` ([maintain-clear-ownership](skills/questlog/references/maintain-clear-ownership.md)): Keep ownership explicit through quest content and classification because Questlog does not provide a separate assignee field or ownership tool.
414
+ - `ghostpaw-questlog skill manage-approvals-and-promises` ([manage-approvals-and-promises](skills/questlog/references/manage-approvals-and-promises.md)): Treat approvals and commitments as modeled work with timing and dependencies instead of burying them as vague narrative promises.
415
+ - `ghostpaw-questlog skill plan-successor-work` ([plan-successor-work](skills/questlog/references/plan-successor-work.md)): Create explicit successor work after closure by spawning follow-ups or shaping new work, while keeping uncertain next steps in intake instead of faking certainty.
416
+ - `ghostpaw-questlog skill plan-time-correctly` ([plan-time-correctly](skills/questlog/references/plan-time-correctly.md)): Use quest planning fields honestly so availability, due pressure, and schedule intent stay meaningful instead of getting collapsed into one generic date.
417
+ - `ghostpaw-questlog skill prioritize-across-streams` ([prioritize-across-streams](skills/questlog/references/prioritize-across-streams.md)): Prioritize across competing work streams by reading real candidate sets, distinguishing available from blocked work, and then reflecting the choice in planning.
418
+ - `ghostpaw-questlog skill protect-capacity-and-focus` ([protect-capacity-and-focus](skills/questlog/references/protect-capacity-and-focus.md)): Protect capacity and focus by reading the real in-progress and scheduled-now load, then using planning to rebalance instead of silently overcommitting.
419
+ - `ghostpaw-questlog skill recover-from-modeling-mistakes` ([recover-from-modeling-mistakes](skills/questlog/references/recover-from-modeling-mistakes.md)): Recover from modeling mistakes by diagnosing the exact current state first, then applying the smallest honest corrective tool instead of rewriting history blindly.
420
+ - `ghostpaw-questlog skill report-status-and-manage-expectations` ([report-status-and-manage-expectations](skills/questlog/references/report-status-and-manage-expectations.md)): Build status reporting from the real questlog state, separating available, blocked, in-progress, slipping, and resolved work without relying on memory.
421
+ - `ghostpaw-questlog skill revise-or-reshape-commitment` ([revise-or-reshape-commitment](skills/questlog/references/revise-or-reshape-commitment.md)): Revise a quest objective before execution starts, but reshape commitments honestly with lifecycle tools once real execution history exists.
422
+ - `ghostpaw-questlog skill run-operational-review` ([run-operational-review](skills/questlog/references/run-operational-review.md)): Drive daily or weekly operational review from structured list views, then move from diagnosis into actual planning or execution changes.
423
+ - `ghostpaw-questlog skill run-recurring-rhythms` ([run-recurring-rhythms](skills/questlog/references/run-recurring-rhythms.md)): Model recurring work as repeatable definitions that spawn fresh concrete quests over time instead of living forever as one immortal task.
424
+ - `ghostpaw-questlog skill search-and-retrieve-context` ([search-and-retrieve-context](skills/questlog/references/search-and-retrieve-context.md)): Find relevant questlog context quickly, then switch from discovery to exact inspection without confusing free-text search with structured review surfaces.
425
+ - `ghostpaw-questlog skill sequence-with-unlocks` ([sequence-with-unlocks](skills/questlog/references/sequence-with-unlocks.md)): Model hard sequencing with unlocks between concrete quests so blocked and available work stay truthful and reviewable.
426
+ - `ghostpaw-questlog skill settle-rumor-into-structure` ([settle-rumor-into-structure](skills/questlog/references/settle-rumor-into-structure.md)): Turn a ready rumor into committed quest or questline structure without losing provenance or pretending vague intake is settled.
427
+ - `ghostpaw-questlog skill tag-and-filter-portfolios` ([tag-and-filter-portfolios](skills/questlog/references/tag-and-filter-portfolios.md)): Use tags for cross-cutting classification and portfolio filtering without confusing tags for status, timing, or dependency modeling.
303
428
 
304
429
  ### Principles
305
430
 
@@ -307,3 +432,7 @@ Writes: writes_state.
307
432
  - Read before you prescribe.
308
433
  - Protect history when reality changes.
309
434
  - Close the last mile, not just the main work.
435
+
436
+ ## Without the binary
437
+
438
+ Use `npx -y @ghostpaw/questlog ...` in npm-based environments (Node 24+). Harnesses that embed it in code can import `@ghostpaw/questlog` as a library.