Agent skill

Preference Learner

by Ckokoski in Ckokoski/AuthorAgent

Tracks user preferences, writing habits, and communication style to personalize every interaction

MITAuto-check passedAI & LLM Engineering

Install Preference Learner

skills CLI
$ npx skills add Ckokoski/AuthorAgent --skill preference-learner -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Ckokoski/AuthorAgent preference-learner --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Ckokoski/AuthorAgent.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/_archived/core/preference-learner .claude/skills/preference-learner && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
preference-learner
GitHub stars
122
Token cost
~1.8k tokens
SKILL.md length
541 words
Files
1
Skills in repo
23
Repo updated
First seen
Licence
MIT

At a glance

Tracks user preferences, writing habits, and communication style to personalize every interaction

  • Works in 4 steps: Loads the preference profile → Selects relevant preferences for the… → Injects them into the system prompt as… → …
  • AI & LLM Engineering work in your project
  • SKILL.md covers What Gets Learned, How Preferences Are Learned, Preference Profile Storage and Applying Preferences, plus 5 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Preference Learner is an agent skill from Ckokoski/AuthorAgent. Tracks user preferences, writing habits, and communication style to personalize every interaction

Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in AI & LLM Engineering. The repository describes itself as: The Autonomous AI Writing Agent — a secure, author-focused AI for fiction and nonfiction authors (Planning, Revision, Promotion, and more). The licence is MIT.

When your agent uses it

  • AI & LLM Engineering work in your project

Example prompts

  • “Use the preference-learner skill to track user preferences, writing habits, and communication style to personalize every interaction”
  • “/preference-learner”

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Loads the preference profile
  2. Selects relevant preferences for the current task type
  3. Injects them into the system prompt as constraints
  4. After the interaction, checks if any new preferences were detected

What it can do on your machine

Read from SKILL.md and the folder at commit 47e9570. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are yaml).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Preference Learner loads about 1.8k tokens when it runs. Until then it costs about 29 tokens; SKILL.md has 541 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~29
When it runs · the whole SKILL.md, loaded when a task matches
~1.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Ckokoski/AuthorAgent at commit 47e9570, republished under its MIT licence (© Ckokoski). 541 words, ~1,840 tokens.

Download SKILL.mdSave it as .claude/skills/preference-learner/SKILL.md (or your agent's skills folder).
name
preference-learner
description
Tracks user preferences, writing habits, and communication style to personalize every interaction
author
Writing Secrets
version
1.0.0
triggers
my preferences, remember that I, I prefer, I like, I don't like, I always want, I never want, update preferences, show preferences, preference
permissions
file:read, file:write

Preference Learner — Core Skill

Every author is different. This skill builds a living profile of the user's preferences, habits, and working style — then applies it to every interaction so AuthorClaw feels increasingly personalized.

What Gets Learned

Writing Preferences
yaml
writing:
  # Detected from user revisions and feedback
  dialogue_tags: "simple (said/asked only)"
  description_density: "moderate (1-2 sensory details per scene)"
  paragraph_length: "short (2-4 sentences)"
  chapter_length: "2500-3500 words"
  pov_preference: "third person limited"
  tense: "past"
  profanity_level: "mild"
  romance_heat_level: "closed door"
  violence_level: "moderate"
  humor_style: "dry, situational"

  # Specific dos and don'ts
  always:
    - "Start chapters with action or dialogue, never description"
    - "End chapters on a hook or question"
    - "Use Oxford comma"
  never:
    - "Use adverbs in dialogue tags (said softly, whispered quietly)"
    - "Start sentences with 'Suddenly'"
    - "Use the word 'whilst'"
Communication Preferences
yaml
communication:
  response_length: "concise (under 200 words unless writing prose)"
  status_update_frequency: "after each major step"
  question_threshold: "only ask if truly ambiguous (err on acting)"
  emoji_usage: "moderate"
  formality: "casual, friendly"
  explanation_depth: "brief unless asked for detail"
  preferred_channel: "telegram"
Working Style
yaml
workflow:
  active_hours: "6am-10pm"
  most_productive_time: "morning (6am-noon)"
  session_length: "30-60 minutes"
  break_reminders: true
  daily_word_goal: 2000
  preferred_goal_size: "medium (5-8 steps)"
  review_preference: "review after each chapter, not after each scene"
  file_organization: "by project, then by chapter"
  naming_convention: "chapter-01-title.md"
Genre & Market Preferences
yaml
market:
  primary_genre: "psychological thriller"
  subgenres: ["domestic suspense", "unreliable narrator"]
  target_audience: "women 25-45, fans of Gillian Flynn"
  publishing_path: "traditional (querying agents)"
  comp_titles: ["The Wife Between Us", "The Last Thing He Told Me"]
  word_count_target: 80000
  series_vs_standalone: "standalone with series potential"
Tool & Provider Preferences
yaml
tools:
  preferred_ai_for_planning: "gemini (free, fast)"
  preferred_ai_for_writing: "claude (best prose)"
  preferred_ai_for_research: "gemini (good enough, free)"
  outline_format: "chapter-by-chapter with beat notes"
  export_format: "docx for submissions, epub for beta readers"
  research_depth: "thorough with citations"

How Preferences Are Learned

Explicit Statements (Highest Priority)

The user directly tells AuthorClaw their preferences:

  • "I prefer short chapters"
  • "Never use adverbs"
  • "Always use Oxford comma"
  • "I like when you explain your reasoning"

These are immediately stored with maximum confidence.

Behavioral Observation (High Priority)

Patterns detected from user actions:

  • User consistently shortens AI-generated paragraphs → prefers concise prose
  • User always edits "suddenly" out of text → add to "never" list
  • User responds faster to short messages → prefers concise communication
  • User creates goals in the morning → morning is productive time
Revision Analysis (Medium Priority)

When the user edits AI output:

  • What did they change? (specific words, structure, tone?)
  • What did they keep? (these approaches work)
  • How much did they change? (major rewrite = wrong approach, minor tweaks = close)
Feedback Integration (High Priority)

When the user rates output or gives feedback:

  • "This is great!" → reinforce current approach
  • "Too wordy" → reduce verbosity for this task type
  • "I love this character voice" → save as reference for voice matching

Preference Profile Storage

Stored as YAML at workspace/memory/user-preferences.yaml:

  • Human-readable (the user can edit it directly)
  • Machine-parseable (AuthorClaw loads it into context)
  • Versioned (changes are logged with timestamps)

Applying Preferences

Before each interaction, AuthorClaw:

  1. Loads the preference profile
  2. Selects relevant preferences for the current task type
  3. Injects them into the system prompt as constraints
  4. After the interaction, checks if any new preferences were detected
Example System Prompt Injection
## User Preferences (Follow These)
- Writing: simple dialogue tags only, short paragraphs, no adverbs
- Style: past tense, third person limited, moderate description
- Communication: keep responses under 200 words, casual tone
- Never: use "suddenly", "whilst", adverbs in dialogue tags
- Always: Oxford comma, end chapters on hooks, start with action

Conflict Resolution

When preferences conflict:

  1. Explicit always beats implicit — "I like short chapters" overrides observed behavior
  2. Recent beats old — Preferences from this week override preferences from last month
  3. Specific beats general — "For this project, use present tense" overrides general "past tense" preference
  4. Ask when genuinely ambiguous — If two explicit preferences conflict, ask the user
Show full SKILL.md (203 more words)Show less

Viewing & Editing Preferences

show my preferences

Displays the full preference profile in a readable format.

update preference: chapter_length = 4000-5000

Manually update a specific preference.

forget preference: dialogue_tags

Remove a learned preference (reset to default behavior).

preference history

Show when and why each preference was learned.

export preferences

Save preferences as a portable file (useful if switching projects or reinstalling).

Project-Specific Preferences

Some preferences are per-project, not global:

  • POV might change between a thriller (3rd limited) and a literary novel (1st person)
  • Tone might shift between projects
  • Word count targets vary by genre

AuthorClaw maintains both:

  • Global preferences — apply everywhere (communication style, formatting, dos/don'ts)
  • Project preferences — apply only within a specific project (POV, tense, tone, genre)

Integration

  • Self-Improvement Loop — Preference changes are logged as lessons
  • Voice Profile — Writing preferences feed into the Soul system's voice matching
  • Goal Engine — Task routing considers provider preferences
  • Heartbeat — Working hours and session preferences inform autonomous scheduling

Commands

  • show my preferences — View full preference profile
  • I prefer [X] — Explicitly set a preference
  • I never want [X] — Add to the "never" list
  • I always want [X] — Add to the "always" list
  • update preference [key] = [value] — Update a specific preference
  • forget preference [key] — Remove a learned preference
  • preference history — Show learning timeline
  • export preferences — Export as portable file
  • import preferences [file] — Import from another project

© Ckokoski, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/_archived/core/preference-learner of Ckokoski/AuthorAgent.

Open the folder on GitHubat commit 47e9570

Compare with similar skills

Preference Learner next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Preference Learner compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Preference Learner this skillCkokoski/AuthorAgent122—~1.8kAutomated safety check: PassMIT
Agent BuildershareAI-lab/learn-claude-code78k6 repos~1.2kAutomated safety check: PassMIT
Add Uint Supportpytorch/pytorch104k2 repos~2.3kAutomated safety check: PassCustom licence
Peft Fine TuningOrchestra-Research/AI-Research-SKILLs13k9 repos~3.1kAutomated safety check: PassMIT
Segment Anything Model GuideOrchestra-Research/AI-Research-SKILLs13k9 repos~3.3kAutomated safety check: PassMIT
1passwordtrpc-group/trpc-agent-go1.8k15 repos~656Automated safety check: PassApache-2.0

Similar skills

  • Agent Builder

    shareAI-lab/learn-claude-code

    Design and build AI agents for any domain. An agent skill from shareAI-lab/learn-claude-code.

    78k GitHub starsUsed in 6 repos~1.2k tokens
    AI & LLM EngineeringAuto-check passed
  • Add Uint Support

    pytorch/pytorch

    Add unsigned integer (uint) type support to PyTorch operators by updating ATDISPATCH macros.

    104k GitHub starsUsed in 2 repos~2.3k tokens
    AI & LLM EngineeringAuto-check passed
  • Peft Fine Tuning

    Orchestra-Research/AI-Research-SKILLs

    Parameter-efficient fine-tuning for LLMs using LoRA, QLoRA, and 25+ methods.

    13k GitHub starsUsed in 9 repos~3.1k tokens
    AI & LLM EngineeringAuto-check passed
  • Segment Anything Model Guide

    Orchestra-Research/AI-Research-SKILLs

    Guide to using Meta's Segment Anything Model for zero-shot image segmentation with point, box or mask prompts, or automatic mask generation.

    13k GitHub starsUsed in 9 repos~3.3k tokens
    AI & LLM EngineeringAuto-check passed
  • 1password

    trpc-group/trpc-agent-go

    Set up and use 1Password CLI (op). An agent skill from trpc-group/trpc-agent-go.

    1.8k GitHub starsUsed in 15 repos~656 tokens
    AI & LLM EngineeringAuto-check passed
  • Chroma Vector Database

    Orchestra-Research/AI-Research-SKILLs

    Shows how to store documents and embeddings in Chroma, query them by similarity with metadata filters, and persist them to disk for RAG and semantic search projects.

    13k GitHub starsUsed in 8 repos~2.3k tokens
    AI & LLM EngineeringAuto-check passed

More from Ckokoski/AuthorAgent

All 23 skills in this repo
  • After Action Review

    Ckokoski/AuthorAgent

    Structured post-goal reflection that extracts lessons, evaluates quality, and feeds the self-improvement loop

    122 GitHub stars~1.6k tokensUpdated 2 mo ago
    Auto-check passed
  • Comp Title Finder

    Ckokoski/AuthorAgent

    Find and analyze comparable titles for query letters, marketing, and positioning strategy

    122 GitHub stars~1.4k tokensUpdated 2 mo ago
    Auto-check passed
  • Continuity Check

    Ckokoski/AuthorAgent

    Scan manuscript for inconsistencies in characters, timeline, settings, and names

    122 GitHub stars~1.5k tokensUpdated 2 mo ago
    Auto-check passed
  • Deep Voice Analysis

    Ckokoski/AuthorAgent

    Advanced 47-marker voice analysis engine — analyzes your writing to build a comprehensive Voice Profile for AuthorClaw

    122 GitHub stars~1.4k tokensUpdated 2 mo ago
    Auto-check passed
  • Dictation Cleanup

    Ckokoski/AuthorAgent

    Transform raw speech-to-text dictation into polished prose while preserving the author's natural voice

    122 GitHub stars~1.2k tokensUpdated 2 mo ago
    Auto-check passed
  • Error Recovery

    Ckokoski/AuthorAgent

    Intelligent error diagnosis, automatic recovery strategies, and prevention of recurring failures

    122 GitHub stars~1.7k tokensUpdated 2 mo ago
    Auto-check passed

Questions about Preference Learner

What does Preference Learner do?

Tracks user preferences, writing habits, and communication style to personalize every interaction. Preference Learner is an agent skill from Ckokoski/AuthorAgent.

When should I use Preference Learner?

Preference Learner fits situations like: AI & LLM Engineering work in your project.

How do I install Preference Learner in Claude Code?

Run `npx skills add Ckokoski/AuthorAgent --skill preference-learner -a claude-code`. Or copy the skill folder (skills/_archived/core/preference-learner in Ckokoski/AuthorAgent) into .claude/skills/preference-learner in your project. Claude Code loads it when a task matches its description.

How do I install Preference Learner in Codex?

Run `npx skills add Ckokoski/AuthorAgent --skill preference-learner -a codex`. Or copy the skill folder (skills/_archived/core/preference-learner in Ckokoski/AuthorAgent) into .agents/skills/preference-learner in your project. Codex loads it when a task matches its description.

Can I use Preference Learner in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Ckokoski/AuthorAgent --skill preference-learner -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/preference-learner, .gemini/skills/preference-learner, .github/skills/preference-learner and .opencode/skills/preference-learner in your project.

What does Preference Learner need to run?

SKILL.md names no scripts, command-line tools or credentials: Preference Learner is instructions for the agent only.

Does Preference Learner access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Preference Learner safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Preference Learner use?

Preference Learner is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Preference Learner use?

About 1.8k tokens (SKILL.md is roughly 7.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Preference Learner?

Skills that share tags, products or a category with Preference Learner: Agent Builder (shareAI-lab/learn-claude-code, 78k stars), Add Uint Support (pytorch/pytorch, 104k stars), Peft Fine Tuning (Orchestra-Research/AI-Research-SKILLs, 13k stars) and Segment Anything Model Guide (Orchestra-Research/AI-Research-SKILLs, 13k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Preference Learner?

Ckokoski (a GitHub user) maintains it in Ckokoski/AuthorAgent, which has 122 GitHub stars. The repository holds 23 skills in this directory. The repository was last updated on July 11, 2026.

Source: Ckokoski/AuthorAgent on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.