Memory audit
Custom skills and utilities for integrating with Gen AI tooling.
npx -y skills add andreijirohdev-labs/gen-ai-labs --skill memory-auditAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Runs Andrei's cross-project memory/backlog audit — reconciling dev work (GitLab.com projects, Alpine Linux aports on gitlab.alpinelinux.org, GitHub), Leaflet.pub blog drafts, Obsidian notes, and Google Drive into a single status report + prioritized action list. Trigger this whenever Andrei explicitly says "run memory audit" (or close variants like "audit my backlog", "memory check-in"), whenever a monthly or quarterly check-in is due or requested, and whenever Andrei mentions specific tracked projects or drafts by name (nixops-config, aports/gh package, Recap Time Squad, Leaflet.pub drafts, homelab/NixOS config work) in a way that implies "where did I leave this?" Do not wait for Andrei to spell out the full routine each time — this skill already knows the sources, the staleness rules, and the output format.
SKILL.md
6.7 KB, as published. Nobody here has run it
Memory Audit
A recurring routine that reconciles what Andrei is actually working on across scattered
sources — code hosts, a blog platform, personal notes, and Drive — into one Markdown
report he can drop straight into Obsidian or TASKS.md.
Why this exists
Andrei's work lives in five places that don't talk to each other:
- GitLab.com — primary host for his own projects (e.g.
nixops-config) - gitlab.alpinelinux.org — Alpine Linux's self-hosted GitLab, used for
aports(theghpackage) - GitHub — mirrors,
ghCLI usage, some Recap Time Squad repos - Leaflet.pub — draft blog posts (maintainer check-ins, status updates)
- Obsidian notes / Google Drive — the personal layer that's supposed to tie it all together but drifts
The audit's job is to notice drift: a note that says "in progress" but the repo's been quiet for two months, a draft that's been sitting since before the last check-in, a task that shows up in Obsidian but never made it into an issue anywhere.
When to run
- Explicit trigger: "run memory audit," "audit my backlog," "memory check-in," or similar.
- Scheduled check-ins: monthly and quarterly. If Andrei references a check-in cadence without asking for anything else specific, assume he wants the full audit.
- Implicit trigger: Andrei mentions a tracked project/draft by name in a way that reads like "where did I leave this?" (e.g. "what's the state of nixops-config" / "did I ever finish that Leaflet post"). In this case you can scope the audit to just that item rather than running the full sweep — ask if unsure.
Claude.ai access constraints — read this first
Claude.ai (web/mobile) cannot reach:
- Andrei's local Obsidian vault
- gitlab.alpinelinux.org or gitlab.com pages that aren't already surfaced via search results
So each run, be upfront about what you can and can't fetch live:
- Try live fetch first for anything reachable:
- GitHub:
api.github.com/github.comURLs are fetchable directly. - GitLab (either instance): not directly fetchable via
web_fetchcold — runweb_searchfor the specific project/issue first (e.g.site:gitlab.alpinelinux.org aports gh), thenweb_fetchthe URLs that search turns up. If nothing turns up, say so plainly. - Google Drive: use
google_drive_search/google_drive_fetchdirectly — this is reliably available. (Note: past runs found Drive weak for personal task lists specifically — it's better for docs than for backlog/todo data. Don't over-trust an empty Drive result as "no backlog exists.") - Leaflet.pub: not directly crawlable in general — treat as needing Andrei's input unless a specific draft URL is already in the conversation or Andrei's memory.
- GitHub:
- Ask for what you can't reach. Explicitly list what's missing before writing the report, e.g.: "I can't reach your Obsidian vault or the two Leaflet drafts directly — paste/upload the relevant notes and I'll fold them in." Don't silently skip a source.
- Never fabricate status. If a source is unavailable and Andrei doesn't supply it, mark
that project/draft as
⚠️ unknown — source unavailable this runrather than guessing.
Staleness rules (weighted, not binary)
Flag an item if any of these are true, and note which rule fired:
| Signal | Threshold | Weight |
|---|---|---|
| No commits/issues/MR activity | 3+ weeks quiet for active dev projects | Medium |
| Draft post unpublished | Past its own stated target date, or 2+ months old with no edits | Medium |
| Obsidian/notes vs. actual repo state mismatch | Note says a status the repo doesn't support (e.g. "in progress" but repo untouched, or "done" but no merged MR/closed issue) | High — this is the most useful signal, surface these first |
| Cross-source duplication | Same task tracked in two places with different states | Low — just note it, don't treat as urgent |
Weight matters for ordering the action list, not for deciding whether to include something — include everything flagged, just sort mismatches and long-quiet items above minor duplication.
Output format
Produce a single Markdown file, structured so it can be pasted straight into Obsidian or
appended to TASKS.md. Use this shape:
# Memory Audit — <date, Asia/Manila>
## TL;DR
- 2-4 bullets: what needs attention *now*, in plain terms.
## Status by project
### <Project name> (<source(s)>)
- **State:** active / stale / done / unknown
- **Last signal:** <date + what happened, or "none found">
- **Flag:** <staleness rule that fired, or "none">
(repeat per project/draft)
## Action list (prioritized)
- [ ] <highest-weight item first>
- [ ] ...
## Sources checked this run
- <what was fetched live, what Andrei supplied, what's still missing>
- Keep the per-project write-ups tight — 2-4 lines each. This is a working doc, not a report to present to someone else.
- Always include the "Sources checked this run" section — it's the trust layer that lets Andrei know what's stale-because-real vs. stale-because-unchecked.
- Save/present as a
.mdfile (this qualifies as a standalone artifact — a document meant to be dropped into Obsidian/TASKS.md — so create the file rather than just printing it inline).
Applying Andrei's standing preferences
Per his usual conventions: include a short TL;DR (built into the template above), and include clickable source links wherever you cite a specific GitHub/GitLab URL, Drive doc, or Leaflet draft — these double as the "3+ links for cross-validation" he expects, and let him jump straight to the thing that's stale instead of taking your word for it.
Notes on tone
Andrei runs this on himself, not to be graded — flag drift plainly and move on. Don't editorialize about productivity or add motivational framing; just report what's active, what's stale, and what's next.