maintain-filemap — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited maintain-filemap (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
When the directory shape changes, regenerate the map. The committed FILEMAP.md at each repo root is the artifact a new collaborator opens first.Keeps a FILEMAP.md at the root of each Lossless repo current with the actual on-disk tree. Each FILEMAP.md has two parts:
tree -L 3 with a curated ignore set, spliced between <!-- TREE-START --> and <!-- TREE-END --> sentinels in a fenced code block. Regenerated by the loop's script every time the discipline fires.Why both: a raw tree dump is useful but doesn't tell a newcomer what they're looking at. The curator preface is what makes the file legible; the generated tree is what makes it accurate.
Three triggers:
| Trigger | Cadence | How it fires |
|---|---|---|
| Directory-shape change | as-it-happens | Pre-commit hook, OR manually as part of the commit that changes shape |
| Weekly cadence | every Monday | Manual or cron; produces a no-op commit if nothing changed |
| Pre-release | before each main/master ship | Manual; bundled into the release commit |
The hook is optional but recommended. Without it, the discipline lives in the agent's working memory: "Did I just add corpus/? → regen FILEMAP."
Triggers the loop:
mkdir context-v/loops/).gitmodules changed)apps/dididecks-shell/ → apps/deck-shell/)CLAUDE.md or pnpm-workspace.yaml was addedclient-sites/Does NOT trigger the loop:
context-v/plans/Some-Plan.md)src/pages/scroll/{deck}/Rule of thumb: if the change makes the FILEMAP's depth-3 view different, run the loop.
# From the repo root
bash context-v/loops/maintain-filemap/scripts/regen-filemap.shThe script:
cd to the repo root (via git rev-parse --show-toplevel)tree -L 3 -I '<curated-ignore-pattern>' --noreport --dirsfirstFILEMAP.md<!-- TREE-START --> and <!-- TREE-END --> markers, preserving everything elseFILEMAP.mdgit add FILEMAP.md for the next commitThe ignore pattern is the load-bearing knob — see scripts/regen-filemap.sh for the canonical set (node_modules, .git, .astro, dist, .vercel, .output, cache, *.lock, .DS_Store, public). Edit only when a new "noise" directory consistently appears across repos.
A FILEMAP.md at every repo root that participates. Per the pseudomonorepos discipline, every level of the tree has its own:
| Repo level | FILEMAP carries |
|---|---|
Parent pseudomonorepo (dididecks-ai/) | Tree of apps/, client-sites/ (submodule mount points + one level deep), context-v/, changelog/, corpus/, splash/, data/ if present |
Client-site (client-sites/<client>/) | Tree of the client's src/, data/, db/, corpus/, context-v/, public/ |
| Shell submodule etc. | Each carries its own |
The PARENT's FILEMAP.md does NOT try to deeply enumerate submodule contents. It stops at the submodule mount + the submodule's own top-level dirs (depth 3 from parent ≈ depth 1 within submodule). For deeper detail, the reader follows the submodule's own FILEMAP.md.
Two signals:
git diff FILEMAP.md is non-empty after running, the committed map is stale. Trivial to catch.ls the repo root and see a directory that's not in FILEMAP.md, the loop is overdue.A future enhancement: a CI check that runs the script and fails the build if git diff --quiet FILEMAP.md would fail. Today it's local-discipline; promote to CI when a collaborator misses the discipline twice.
| Companion skill | When it fires alongside this loop |
|---|---|
git-conventions | Always — the FILEMAP regen commit follows the standard chore(filemap): regenerate after <change> header pattern |
changelog-conventions | Usually no — a filemap regen alone doesn't warrant a changelog entry; the underlying change (new submodule, etc.) might |
pseudomonorepos | When the change touches submodule mounts — the pseudomonorepos branch-alignment + relocation rules govern, and the FILEMAP regen is one part of the cleanup |
context-vigilance | When the change is to context-v/ itself — the loop regenerates the map; context-vigilance governs the contents of the map |
dist/ directories, node_modules/, and .lock files in the tree are noise that makes the map unreadable. The curated ignore pattern is load-bearing.scripts/regen-filemap.sh — the recipeFILEMAP.md — the artifact this loop maintains../README.mdcontext-v/agent-skills/~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.