openwriter 0.18.0 → 0.18.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.
@@ -257,13 +257,15 @@ export function listArchivedDocuments() {
257
257
  // ============================================================================
258
258
  /** One-line footer the high-frequency MCP discovery tools (list_documents,
259
259
  * list_workspaces, get_workspace_structure) append when dirty docs exist.
260
- * Constant pressure that doesn't require hook setup. The agent's openwriter
261
- * skill teaches: see this footer spawn the enrichment minion. */
260
+ * Constant pressure that doesn't require hook setup. The footer includes
261
+ * the exact dispatch call so the acting agent's burden collapses to one
262
+ * paste — the minion is orchestrator-mode by default and self-discovers
263
+ * via list_dirty_docs once it boots. */
262
264
  export function enrichmentFooter() {
263
265
  const count = listDirtyDocs().length;
264
266
  if (count === 0)
265
267
  return '';
266
- return `\n\n⚠ ${count} doc${count === 1 ? '' : 's'} need enrichment spawn the enrichment minion (see openwriter skill docs/enrichment.md)`;
268
+ return `\n\n⚠ ${count} doc${count === 1 ? '' : 's'} need enrichment. Dispatch:\nAgent(\n subagent_type: "openwriter-enrichment-minion",\n description: "Drain stale docs",\n prompt: "Enrich stale docs.",\n run_in_background: true\n)`;
267
269
  }
268
270
  /** Session-start enrichment notice injected into the MCP server's
269
271
  * `instructions` field at boot. Every MCP client (Claude Code, Cursor, etc.)
@@ -292,8 +294,13 @@ export function buildEnrichmentInstructions() {
292
294
  return [
293
295
  '',
294
296
  `ENRICHMENT_STATUS: ${dirty.length} doc${dirty.length === 1 ? '' : 's'} need enrichment (${parts.join(', ')}).`,
295
- 'Spawn the enrichment minion using the openwriter skill\'s docs/enrichment.md as its system prompt before responding to the user\'s request.',
296
- 'The minion calls list_dirty_docs, enriches each via Haiku, calls mark_enriched, returns done.',
297
+ 'Dispatch the minion now it self-discovers via list_dirty_docs and self-bounds the batch:',
298
+ 'Agent(',
299
+ ' subagent_type: "openwriter-enrichment-minion",',
300
+ ' description: "Drain stale docs",',
301
+ ' prompt: "Enrich stale docs.",',
302
+ ' run_in_background: true',
303
+ ')',
297
304
  ].join('\n');
298
305
  }
299
306
  /** Build a Set of filenames inside workspaces with enrichmentDisabled: true.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openwriter",
3
- "version": "0.18.0",
3
+ "version": "0.18.1",
4
4
  "description": "The open-source writing surface for AI agents. Markdown-native editor with pending change review — your agent writes, you accept or reject.",
5
5
  "type": "module",
6
6
  "license": "MIT",