Install
$ agentstack add skill-ivankuznetsov-llm-wiki-upgrade ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Upgrade LLM Wiki Project Structure
Upgrade the current project's managed llm-wiki files to the templates bundled with this installed release. This is a narrow, deterministic migration: do not regenerate wiki pages, switch the headless owner, run a refresh agent, or update QMD. It does reconcile the deterministic bounded scheduler because stale units are part of the managed project structure.
Preconditions
- The current directory must be inside a Git repository already bootstrapped
with .llm-wiki/ and wiki/.
- When
.llm-wiki/config.jsonexists, read it and report the configured
headless_agent. Preserve the file byte-for-byte.
- When the config is missing, the script infers the owner only when legacy
managed scripts and the latest added or modified config in Git history identify exactly one of Codex, Claude Code, or Pi. It creates the config with that owner; zero or multiple candidates stop the migration before any project file is changed.
Run the Upgrade
Resolve scripts/upgrade-project.sh relative to this SKILL.md and run:
skills/upgrade/scripts/upgrade-project.sh --project "$(git rev-parse --show-toplevel)"
Use the resolved installed path, not the example's repository-relative path. When the user asks only whether an upgrade is needed, run --check instead. Exit status 10 means an upgrade is available; it is an expected check result, not a migration failure.
The script upgrades only managed structure:
.llm-wiki/post-commit-refresh.sh.llm-wiki/refresh-wiki.sh.llm-wiki/compile-log.sh.llm-wiki/install-systemd-scheduler.sh- canonical copies of the post-commit runner and compiler under
$(git rev-parse --git-common-dir)/llm-wiki/ for all linked worktrees
- canonical shared owner config and keepalive refs for existing queued commits,
backfilled in bounded source-ref transactions
- a missing
.llm-wiki/config.jsonwhen live or historical evidence identifies
one unambiguous legacy owner
wiki/log.d/and the compiledwiki/log.mdlayout- the marked
LLM WIKI POST-COMMITblock in the active Git hook path - one bounded systemd timer for the repository primary worktree, preserving an
intentionally disabled timer while removing duplicate units for linked worktrees in the same repository
The post-commit template is identical in every project. The shared Git hook runner receives the committing worktree through --project, reads its preserved headless_agent from the shared canonical config, and dispatches to exactly one of Codex, Claude Code, or Pi from the managed refresh worktree. The checkout-local copy remains a manual entrypoint and compatibility fallback. The scheduled wrapper invokes that canonical runner with --drain; it never launches a provider for an empty queue and never writes into a user checkout. On Linux, its service serializes provider work machine-wide, caps memory at 4 GiB without swap, and uses a non-persistent randomized timer.
Safety Contract
- Preserve unrelated tracked and untracked project changes.
- Overwrite only the four llm-wiki-managed scripts listed above.
- Replace or deduplicate only the marked post-commit hook block; preserve all
unmarked hook logic and refuse unmatched markers.
- Preserve all hand-written legacy changelog prose while introducing the
generated fragment block. Refuse malformed generated-log markers.
- Never commit, stage, push, invoke an LLM, or change branches.
- A second upgrade must be byte-for-byte idempotent.
Report
Report:
- Whether the project was upgraded or already current.
- Configured headless owner.
- Managed files changed.
- Whether unrelated dirty work remained unchanged.
- Any validation failure that prevented migration.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: ivankuznetsov
- Source: ivankuznetsov/llm-wiki
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.