Generated banner for Vardoger Analyze
Generated logo for Vardoger Analyze

Vardoger Analyze

GitHubOfficialFirst committed by dstruplDistributed by GitHub

  • Skill
  • Workflow
  • Agent tooling
  • Apache-2.0
  • No issues found

From the author

Use when the user asks to personalize the GitHub Copilot CLI assistant, adapt Copilot to their style, use vardoger, or analyze their Copilot CLI conversation history. Reads the local session directory at `~/.copilot/session-state/`, extracts recurring preferences and conventions, and writes a fenced personalization block into `~/.copilot/copilot-instructions.md`. Runs entirely on the user's machine via the local `vardoger` CLI (`pipx install vardoger`); no network calls and no uploads. Triggers: 'personalize my copilot', 'analyze my copilot history', 'tailor copilot to me', 'run vardoger', 'update my copilot instructions from history', 'make copilot learn my style'.
— the description by dstrupl

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

The vardoger-analyze skill provides a structured workflow to personalize the GitHub Copilot CLI assistant. It leverages the local vardoger CLI to process existing conversation history, identify recurring user preferences and communication styles, and synthesize these into a set of actionable instructions. The process is entirely local, ensuring privacy by avoiding network uploads, and uses idempotent writes to update a dedicated personalization file while preserving any existing manual configurations.

What it does

  • Checks for the presence of the required vardoger CLI tool.
  • Evaluates whether existing personalization instructions are stale.
  • Batches and analyzes local Copilot CLI session history for behavioral signals.
  • Synthesizes extracted patterns into a cohesive set of AI instructions.
  • Updates the global or project-specific copilot-instructions.md file.
  • Maintains existing manual configurations using fenced code block markers.

When to use it

  • When you want to tailor the Copilot CLI assistant to better match your personal coding or interaction style.
  • When you need to analyze past Copilot CLI conversations to identify recurring preferences.
  • When you want to automate the creation of persistent instructions for your AI assistant.
  • When you are ready to use the vardoger tool to manage your AI assistant's configuration.

Advantages

  • Ensures privacy by performing all analysis and file operations locally on your machine.
  • Preserves existing manual rules by using specific markers in the configuration file.
  • Provides an automated, data-driven approach to AI personalization.
  • Supports both global and project-specific configuration scopes.

Usage examples

“personalize my copilot”
The agent will verify the vardoger installation, analyze your session history, and generate a personalized instruction block in your configuration file.
“analyze my copilot history”
The agent will process your conversation logs to extract behavioral patterns and report back on the findings.
“make copilot learn my style”
The agent will run the full vardoger workflow to synthesize your past interactions into new, persistent instructions for the assistant.

Install

  1. Download the skill as a ZIP:

    https://autogineer.com/agent-skills/github/vardoger-analyze/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip vardoger-analyze.zip -d .agents/skills

Documentation by dstrupl

Analyze Copilot CLI history and generate personalized instructions

Drive the local vardoger CLI to read the user's GitHub Copilot CLI conversation history, extract behavioral patterns, and write a personalization block into ~/.copilot/copilot-instructions.md.

How it works

vardoger prepares the history in batches. You (the assistant) summarize each batch for behavioral signals, then synthesize all summaries into a final personalization. vardoger writes the result, fenced by <!-- vardoger:start --> / <!-- vardoger:end --> markers so any hand-authored rules in the same file are preserved.

Sandbox note (read before running any command)

vardoger reads and writes files outside the current workspace:

  • Reads Copilot CLI history from ~/.copilot/session-state/.

  • Writes a checkpoint state file to ~/.vardoger/state.json (created on first run).

  • Writes the final personalization to ~/.copilot/copilot-instructions.md.

When the host asks to approve a vardoger command, grant it write access beyond the workspace. Otherwise the first vardoger prepare call will fail with PermissionError: ... ~/.vardoger/state.tmp because the sandbox blocks writes outside the current working directory.

Workflow

  1. Verify the vardoger CLI is installed and fail fast with install guidance if not.

  2. Check staleness with vardoger status --platform copilot --json and stop early if the personalization is still fresh.

  3. Get batch metadata with vardoger prepare --platform copilot to learn the number of batches.

  4. For each batch, run vardoger prepare --platform copilot --batch <N> and write a concise bullet summary of the behavioral signals.

  5. Get the synthesis prompt with vardoger prepare --platform copilot --synthesize.

  6. Synthesize all batch summaries into a single personalization following the synthesis prompt.

  7. Write the result by piping the personalization into vardoger write --platform copilot --scope global (or --scope project --project <path>).

  8. Report back to the user what was written, where, and that the write is idempotent.

Steps

1. Verify vardoger is installed
if ! command -v vardoger >/dev/null 2>&1; then
  cat <<'INSTALL_EOF'
vardoger CLI is not installed.

This skill calls the `vardoger` CLI to read your Copilot CLI history and
write a personalization file, so the CLI must be on PATH.

Install options:

  # Recommended:
  pipx install vardoger

  # Or run without installing:
  uvx vardoger --help

If you do not have pipx, see https://pipx.pypa.io/stable/installation/.

Project page: https://github.com/dstrupl/vardoger

After installing, re-run the personalization request.
INSTALL_EOF
  exit 1
fi
2. Check if a refresh is needed
vardoger status --platform copilot --json

If the output shows "is_stale": false, tell the user their personalization is up to date and ask if they want to re-run anyway. If stale or never generated, continue with the analysis.

3. Get batch metadata
vardoger prepare --platform copilot

This prints JSON like {"batches": 3, "total_conversations": 29}. Note the number of batches. Tell the user: "Found N conversations in M batches. Analyzing..."

4. Summarize each batch

For each batch number from 1 to N, run:

vardoger prepare --platform copilot --batch 1

The output contains a summarization prompt followed by conversation data. Read the output carefully and produce a concise bullet-point summary of the behavioral signals you observe in that batch. Keep your summary for later.

Tell the user which batch you are processing: "Analyzing batch 1 of N..."

Repeat for all batches (--batch 2, --batch 3, etc.).

5. Get the synthesis prompt
vardoger prepare --platform copilot --synthesize
6. Synthesize the personalization

Following the synthesis prompt, combine all your batch summaries into a single personalization. The output should be clean markdown with actionable instructions for an AI assistant.

7. Write the result

Pipe your personalization to vardoger:

echo "YOUR_PERSONALIZATION_HERE" | vardoger write --platform copilot --scope global

Replace YOUR_PERSONALIZATION_HERE with the actual personalization markdown you generated. --scope global writes to ~/.copilot/copilot-instructions.md; use --scope project --project <path> to scope the write to a specific repository instead.

8. Report to the user

Tell the user what was written and where. Mention they can ask you to re-run vardoger any time to update the personalization, and that writes are idempotent (the fenced block is replaced; anything outside it is preserved).

When to use

  • When the user asks to personalize their Copilot CLI assistant.

  • When the user asks to analyze their Copilot CLI conversation history.

  • When the user mentions "vardoger".

Files

LICENSE

Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.

"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.

"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.

"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.

"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).

"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.

"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."

"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.

2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.

4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:

     (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and

     (b) You must cause any modified files to carry prominent notices stating that You changed the files; and

     (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and

     (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.

     You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work.

To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!)  The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.

Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Requirements and compatibility

Written for: GitHub Copilot

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Needs: Names Copilot tools

Security

No issues found by our static scan· No issues found

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

First committed by
GitHub avatar of dstrupldstrupl
Publisher
GitHub (Official)
Distributed by
GitHub
Source
github/awesome-copilot · skills/vardoger-analyze · commit 797337f
Licence
Apache License 2.0 (redistribution allowed)
  • LICENSE (written by AutoGineer)
  • ATTRIBUTION.md (written by AutoGineer)
Synced
Contributors
dstrupl

AutoGineer is not affiliated with or endorsed by dstrupl or GitHub.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download vardoger-analyze.zip