SuperAPI AI Directory

lov-auto-context

Agents & models

View repository

Updated 10-16 00:01

About this skill

AutoContext: Context Operator

Not just a health check — a full operator over everything that shapes context. Three layers by action sensitivity:

Layer Examples Behavior
Auto-execute write project memory, update MEMORY.md index Do it, report path
Confirm-first edit global agent instructions, edit project CLAUDE.md, overwrite/delete existing memory Show diff, wait for "yes"
Suggest-only /fork, /compact, /btw, new session Print the exact command to paste

The harness owns /fork and /compact; this skill cannot invoke them. But it can do everything else and will.

Auto Mode (via Plugin Hook)

When the skill-publisher plugin is enabled, a UserPromptSubmit hook monitors transcript size. Above threshold (40+ entries or 150KB+), it injects a lightweight <auto-context> reminder.

When you see <auto-context>:

Context State Action
Mostly relevant Continue, say nothing
Some stale noise Mentally deprioritize, proceed
Mostly irrelevant Suggest /fork or /btw with exact command
Near capacity Suggest /compact or /fork with exact command

Rules:

  • 1 sentence max unless acting.
  • If context is fine, say nothing.
  • Never auto-fork/auto-compact (can't anyway — harness-only).
  • Don't mention "AutoContext" unless asked.

Manual Mode (/lov-auto-context [args])

Two call shapes:

A. Bare call — health report + opportunistic memory write

/lov-auto-context
  1. Measure — estimate turns, tool calls, distinct topics
  2. Assess — healthy / getting noisy / polluted / critical
  3. Scan recent turns for unpersisted feedback/preferences — if the user stated a rule or preference earlier in the session that should persist to future conversations (typical trigger phrases: "from now on", "always from now on", "all X should Y", "don't again", "remember"), and no memory was written, auto-execute: write the memory file + update MEMORY.md. Report the path.
  4. Recommend harness actions if needed (/fork, /compact, /btw) with the exact command to paste.

Keep to 3-5 lines unless taking confirm-first actions.

B. With arguments — targeted context operation

/lov-auto-context <free-form instruction>

Parse the instruction and route to the right action class:

Instruction pattern Action Sensitivity
"write to global / write to global / add to global instructions" edit the configured global instructions file Confirm-first
"write to project / add to project CLAUDE.md" edit project CLAUDE.md Confirm-first
"remember X / write to memory" write project memory Auto-execute
"forget X / forget X" remove relevant memory file + index entry Confirm-first
"should I fork / should I fork" evaluate + suggest command Suggest-only
"compact / compact" suggest /compact with exact syntax Suggest-only

Action: Write Project Memory (auto-execute)

Directory: <resolved-agent-home>/projects/<project-slug>/memory/. Resolve <resolved-agent-home> from the User Configuration section before writing. The memory directory should already exist; do not create a new runtime layout silently.

Procedure:

  1. Pick filename: <type>_<topic>.md (e.g. feedback_output_paths.md).
  2. Write with the required frontmatter (name, description, type).
  3. For feedback / project types, include **Why:** and **How to apply:** lines.
  4. Update MEMORY.md with one-line pointer under 150 chars.
  5. Report the absolute + relative path.

Action: Edit Global CLAUDE.md (confirm-first)

Target: <resolved-agent-home>/CLAUDE.md.

Procedure:

  1. Read the file.
  2. Locate the best section for the addition (match existing heading like "output conventions", "network / proxy", "Debugging Discipline"; or create a new section if none fits).
  3. Show the proposed diff as a fenced block with -/+ lines.
  4. Ask: "Execute this modification? (yes/no)"
  5. On "yes" → apply via Edit. On anything else → abort, optionally offer to save as project memory instead.

Never skip the diff step. CLAUDE.md is user-authored authoritative config; silent edits erode trust.

Action: Edit Project CLAUDE.md (confirm-first)

Same flow as global, but target is <cwd>/CLAUDE.md (walk up if not at root). Same diff-then-confirm requirement.

Action: Suggest Harness Commands (suggest-only)

Produce the exact string the user should paste, not a description:

context polluted — paste this to fork:
/fork

or

approaching capacity — compact first, then continue:
/compact

Do not wrap in explanations. The command is the deliverable.

What this skill cannot do (be honest about it)

  • Invoke /fork, /compact, /btw, /clear, new session — harness-only.
  • Edit another agent's transcript.
  • Auto-install hooks — use /update-config for that.

If the user asks for one of these, say so and give them the command to paste.

Output convention

Every action that writes a file must echo its absolute + relative path (per project-wide output-paths rule). Applies to memory files, CLAUDE.md edits (show final path), and any derived artifacts.

User Configuration

Resolve agent paths in this order:

  1. SKILL_AUTO_CONTEXT_AGENT_HOME.
  2. Shared profile ${SKILL_PROFILE_PATH:-$HOME/.skill-publisher/skills/profile.json} keys: agent.home, claude.home, or runtime.agent_home.
  3. Ask the user once for the agent home directory and use that value for the current operation.

For alternate runtimes, set SKILL_AUTO_CONTEXT_AGENT_HOME explicitly or add the relevant profile key.

Runtime context (shared)

Before running, read this Skill package's skill.yaml, provided by the host skill-runtime/v1 context. Field resolution order is: current request, project context, personal Preferences, brand Profile, general defaults.

  • Use only fields declared in the Manifest; Profile stores public brand facts, Preferences stores personal work preferences.
  • required: true When a field is missing, ask the user one focused question according to the Manifest's question configuration; save the answer only after the user explicitly agrees.
  • Errors provide a copyable context_id, field path and source; diagnostic content avoids secrets, full private paths and raw configuration.

General feedback loop

When the user raises modification feedback during a Skill-driven task, before continuing the current artifact you must execute:

  1. First determine whether the feedback is task-specific(this time only) or reusable(reusable across tasks).
  2. task-specific Modify only the current task, do not change the Skill.
  3. reusable First determine the scope: for domain rules, first update the corresponding canonical Skill; for rules that apply to all Skills, first update the shared specification.
  4. After completing rule updates, versioning, lint and distribution verification, then apply the modification to the current task.
  5. reusable The modification invalidates previous "confirm", "continue", "send it"; after completing the current artifact modification and read-back, you must stop and wait for the user's next instruction, without automatically proceeding to publishing, committing or other external writes.