Local Preference Storage

April 28, 2026 ยท View on GitHub

Writer's Loop works without memory. By default, preference learning is session-only.

If users want styles, decisions, or learned preferences to persist across sessions, they can opt into local filesystem storage. The bundled tools write only inside the selected project:

.writers-loop/
|-- journal.jsonl
|-- prefs.md
`-- styles/
    `-- my-style.md

Initialize Storage

npm run journal:init -- /path/to/project

Append A Decision Event

npm run journal:append -- /path/to/project '{"type":"plan_approved","signal":"positive","artifact":"coding-plan","stage":"planning","appliesTo":"coding-plan/planning","summary":"User approved plans with exact verification commands.","payload":{"preference":"Use exact verification commands in implementation plans"}}'

Derive Reusable Preferences

npm run journal:derive -- /path/to/project

Initialize Style-Pack Storage

npm run style:init -- /path/to/project

Save A Reviewed Style Pack

npm run style:save -- /path/to/project my-style /path/to/reviewed-style-pack.md

style:save rejects files that look like raw source samples. Use --force only after a style pack has been explicitly reviewed and approved:

npm run style:save -- --force /path/to/project my-style /path/to/reviewed-style-pack.md

List And Inspect Saved Style Packs

npm run style:list -- /path/to/project
npm run style:show -- /path/to/project my-style

Agent Prompt For Local Storage

Use $writers-loop. Keep preference learning project-local. Store only reviewed decisions in .writers-loop/journal.jsonl, derive reusable preferences into .writers-loop/prefs.md, and do not save private source text unless I explicitly approve it.

Privacy Rules

  • Do not create .writers-loop/ unless the user opts in.
  • Do not commit .writers-loop/ to public repositories.
  • Prefer redacted summaries over full private passages.
  • Save only reviewed style packs to .writers-loop/styles/, not raw source samples.
  • Treat session-only storage as a current-task constraint, not a durable preference.

See PRIVACY.md for the full privacy policy.