Coding Agent Personalizer
Coding Agent Personalizer by ITMO turns recent Git activity into reviewable
suggestions for the instruction files and reusable skills used by coding agents.
The extension collects local repository signals, sends bounded summaries to the
Coding Agent Personalizer service, and keeps you in control before it writes any
rule or skill file.
Requirements
- Visual Studio Code 1.118.0 or later
- A Git repository opened as the first folder in the VS Code workspace
Quick Start
- Open a Git repository in VS Code.
- Open the Coding Agent Personalizer sidebar and sign in with the private
credentials supplied by the administrator. A temporary password must be
changed immediately.
- For a repository that is new to your account, choose your Git author identity
when you are ready. The extension reminds you after each commit until you do;
the backend then remembers the choice for your account and repository.
- The first full repository scan then starts automatically with skill discovery
enabled. Known repositories reuse their saved developer selection.
- Work normally: edit files, run tests, and make commits as usual.
- After each commit, Coding Agent Personalizer synchronizes SpecStory chat
history, records commit-level evaluation metrics, retires unreviewed rules
from the previous commit, and tries to refill the rule queue.
- When that commit's chat produces useful rule suggestions, it shows a notification and
a status bar item.
- Open the review view from the notification, status bar item, or Coding Agent
Personalizer Activity Bar view.
- Review each suggestion's preview.
- Accept to apply a rule immediately, or reject it.
Nothing is written to your repository until you accept a suggestion. Pending and
rejected suggestions are never applied.
How It Works
Coding Agent Personalizer runs as a review loop around your normal work:
- It imports repository-scoped coding-agent conversations through SpecStory.
- When a commit is observed, it synchronizes those conversations and computes
versioned metrics for the chat window that led to that commit.
- The backend retires pending rules from the prior commit and proposes no more
rules than the smaller of three or the number of user messages, grounded only
in the current commit's chat window. A one-message chat qualifies only when
that message contains an explicit durable instruction, correction, or preference.
- A manual generation request instead uses only messages after the latest commit.
- You review every suggestion before accepting it.
- Accepted suggestions are applied to the selected rule file immediately.
The Coding Agent Personalizer Activity Bar view shows the latest repository,
current user, related working context, developer profiles, rule review, and skill candidate state.
Rule suggestions, skill candidates, and related context shown there are scoped to that current developer in this repository.
Related Coding Context
The Current related context sidebar section refreshes automatically from saved Git working-tree changes. A changed file appears when its additions plus deletions are strictly greater than five lines by default. Each changed file gets a separate group containing files that the current user historically changed alongside it.
- Expand a changed-file group to see its own related files.
- Select a related file to open it directly in the editor.
- Hover over entries to inspect shared-commit and ranking evidence.
- If nothing qualifies, the section remains visible with an empty list.
The refresh is deterministic and does not call the LLM. Related files are ranked by shared commits from the current developer. A file must appear in a completed repository scan before graph history is available. Use Refresh Current Related Context for an immediate manual refresh.
Automatic Personalization
Automatic rule generation is commit-driven. For every observed commit with a
selected developer, the extension first forces a SpecStory repository sync. The
backend then evaluates only chat messages between the prior commit boundary and
that commit, retires unresolved suggestions from the previous commit, and tries
to fill the pending queue up to three rules. Empty or unusable chat windows are
recorded without displaying a notification.
Rule Suggestions
The preview step opens a VS Code diff without writing to the repository.
Applying approved suggestions writes the managed Personalized Agent Rules
section only for the coding agent represented in the source chat:
CLAUDE.local.md for Claude Code
.codex/personalization.md for Codex, referenced by
.codex/config.toml through model_instructions_file
If a commit window contains both agents, its accepted rules target both private
stores. The extension maintains a marked block in .gitignore for the active
private files. Accepted rules are returned by the backend and used to recreate
the appropriate private file if it is deleted. Pending and edited suggestions
are capped at three and are retired when the next commit is observed, so they
never silently carry into a later commit's chat context.
Choosing a Git author profile is optional. If no profile has been selected, the
extension shows a dismissible reminder after every observed commit; scans that
need a developer profile wait until the user makes that selection.
Skill Candidates
Coding Agent Personalizer can identify repeated, task-specific workflows from
classified commit history and return them as generated skill candidates. Skill
files are never exported without your approval.
Skill review is commit-driven. The extension watches for new commits and checks
whether any commit crosses codingAgentPersonalizer.skills.minCommitChangedLines.
Large enough commits can trigger a skill-candidate scan. When generated
candidates are ready, you can review them from the notification or the Coding
Agent Personalizer Activity Bar view.
The review panel shows how the scan narrowed from all scanned commits to the
active developer, graph co-change patterns, unique evidence commits, and final
candidates. Each graph-derived candidate also lists likely files and directories
that are included in the generated SKILL.md.
To review and export candidates:
- Open the skill review view from the notification or Coding Agent Personalizer
view.
- Accept to export a candidate immediately, or reject it. The panel retains
both decisions: rejected candidates can be accepted later, and accepted
skills can be re-exported if their generated file was deleted.
The backend keeps no more than three candidates pending for a developer and
repository. After a decision frees a slot, it generates only enough unseen
patterns to refill the queue, ordered by their latest occurrence.
The portable .agents/skills/<skill-name>/SKILL.md target is always included.
The extension can also detect existing tool-specific configuration and export to
compatible skill directories for Claude, Cursor, GitHub, Gemini, Windsurf,
Cline, Roo, and OpenCode.
Existing manually authored skills are skipped by default. Enable
codingAgentPersonalizer.skills.overwriteExisting only when you intend to allow
replacement of those files.
Manual Controls
The automatic workflow covers the normal path. The Command Palette also exposes
manual controls when you want to scan immediately, open the profile output, refresh related coding context,
generate suggestions on demand, review suggestions, preview rules, review skill
candidates, record a prompt note, or reset this workspace's local cache.
Generate Rule Suggestions synchronizes SpecStory first and uses only messages
after the repository's latest commit. Unlike the automatic commit attempt, a
manual request tells you when no post-commit messages or no usable rules were found.
Coding-agent chat history
For signed-in users, chat-history capture is enabled by default. The extension
uses the open-source SpecStory CLI to import existing sessions and watch future
sessions for supported terminal and IDE coding agents. If SpecStory is not on
PATH, the extension downloads the matching official GitHub release into VS
Code extension storage and verifies its published SHA-256 digest before running
it. No administrator or system-wide installation is required.
SpecStory runs with cloud sync, usage analytics, statistics, version checks,
and OpenTelemetry disabled. Its normal secret redaction remains enabled. The
generated Markdown is kept in extension-private storage and uploaded to the
authenticated Coding Agent Personalizer backend. The extension uses SpecStory's
global session index to preserve each chat's original repository association,
and reconciles all indexed projects every 15 minutes. On Windows, installed WSL
distributions are also inspected on a best-effort basis. Use Sync Coding Agent
Chat History to force another reconciliation, or disable the feature with
codingAgentPersonalizer.chatHistory.enabled.
Settings
| Setting |
Default |
Description |
codingAgentPersonalizer.git.maxCommits |
80 |
Maximum number of recent commits included in a scan. |
codingAgentPersonalizer.context.minChangedLines |
5 |
A saved file must exceed this additions-plus-deletions threshold to appear in Current related context. |
codingAgentPersonalizer.backend.url |
https://agent-profiler.onti.actcognitive.org |
HTTPS Coding Agent Personalizer backend URL. Plain HTTP is rejected except on loopback for development. |
codingAgentPersonalizer.skills.autoDetectTargets |
true |
Export accepted skills to detected tool-specific directories. |
codingAgentPersonalizer.skills.exportTargets |
[] |
Additional skill export targets. The portable agents target is always included. |
codingAgentPersonalizer.skills.overwriteExisting |
false |
Allow generated exports to replace skills not created by this extension. |
codingAgentPersonalizer.skills.minCommitChangedLines |
20 |
Changed-line threshold for commit-triggered skill review. |
codingAgentPersonalizer.privacy.storeDiffSnippets |
false |
Reserved for future opt-in diff snippet storage. The current extension does not store diff snippets. |
codingAgentPersonalizer.chatHistory.enabled |
true |
Backfill redacted coding-agent chats and watch future sessions while signed in. |
codingAgentPersonalizer.chatHistory.importExisting |
true |
Run SpecStory's complete history sync when capture starts. |
codingAgentPersonalizer.chatHistory.autoInstallSpecStory |
true |
Install a checksum-verified SpecStory CLI in extension storage if needed. |
codingAgentPersonalizer.chatHistory.specStoryPath |
"" |
Optional explicit SpecStory executable path. |
codingAgentPersonalizer.chatHistory.userDataDirs |
[] |
Additional SpecStory IDE data locations in provider:path form. |
codingAgentPersonalizer.chatHistory.maxTranscriptBytes |
16777216 |
Maximum uploaded transcript size. |
codingAgentPersonalizer.chatHistory.reconcileIntervalMinutes |
15 |
Interval for reconciling new or changed sessions across all indexed projects and local environments. |
Data and Privacy
Before using the extension, confirm that Coding Agent Personalizer is approved
for your repository data.
The extension sends the Coding Agent Personalizer service:
- Recent Git commit metadata, changed paths, line counts, and capped patch
snippets for commit classification
- Repository remotes, branches, HEAD information, and locally available pull
request references
- The authenticated account username returned by the backend; the extension cannot choose or override the stored user ID
- Existing rule-file text when requesting rule suggestions
- Commit-level Git and SpecStory evaluation metrics and optional notes you explicitly record
- Redacted coding-agent prompts, agent responses, and tool-call history when
chat-history capture is enabled
- Local profile cache data needed to continue the review workflow
Profile inference omits patch text. Disable
codingAgentPersonalizer.chatHistory.enabled to stop prompt-history capture and
the managed SpecStory watcher.
Workspace review state is stored in a hidden .profile cache inside VS
Code-managed workspace storage, not in the repository. Reset Local Profile
Data clears that local cache only; it does not delete server-side history.
Troubleshooting
An action says to open a workspace folder
Open a Git repository as the first folder in the VS Code workspace.
No rule suggestions are available
Commit changes after a repository-scoped SpecStory conversation, or use
Generate Rule Suggestions after chatting. Manual generation reports whether
there were no messages after the latest commit or no usable rule evidence.
No skill candidates are available
Skill candidates require repeated workflow evidence in commit history.
A private rule file was removed
The extension rebuilds CLAUDE.local.md, .codex/config.toml, and the configured
Codex instruction file from backend-applied rules while it is running, on the
next activation, or when the next commit is observed.
CLI coexistence
The sibling ../cli-client package supports automatic background monitoring and
terminal reviews. Shared Git/API/rule/skill code lives in ../client-core and is
bundled into the extension; existing source imports remain compatible. When the
CLI holds a live monitoring heartbeat for the same local repository and backend
account, the extension pauses its automatic commit scans. Manual
commands remain available. Live sessions are renewed before expiry through
POST /api/v1/auth/renew; the matching backend update must be deployed.