record-project-memory — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited record-project-memory (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.
@rules/compound-engineering/general.mdc Compound Memory (per project) — this skill is the write side of that rule; it owns the promotion bar, the curation pass, and the file convention defined there.@rules/git/general.mdcdocs/memory/PROJECT_MEMORY.md in the project being worked on. It never edits production code, tests, configuration, CLAUDE.md, or .cursor/rules/project.mdc.rules/** as a global rule.CLAUDE.md).@skills/resolve-issue or @skills/process-code-review run has converged (review loop at 0 Critical / 0 Moderate) and is about to publish its final report.Do not run this skill mid-task, before convergence, or for a task that produced no durable lesson.
CONVERGED_CONTEXT — required. The converged task context: what was implemented/fixed, the review findings that recurred, the wrong turns taken, and the design decisions made. The orchestrator passes this from the shared brief; a skill passes its own run context.SOURCE_REF — required. The PR / issue link to record in each entry's Source: field.AGENT_ROLE — optional. The agent role writing this entry: daidalos, metis, talos, argos, apollon, or shared. When omitted, defaults to shared. Written as the Role: field of every entry produced in this invocation. Pass the caller's own role — do not guess.docs/memory/PROJECT_MEMORY.md in the project being worked on.# Project memory — <project>). Creating it is allowed; this is the file's first write.docs/ tree and refuses to grow one, fall back to the project's existing learnings / decision-log file per @rules/compound-engineering/general.mdc. Never fall back to CLAUDE.md or .cursor/rules/project.mdc themselves.List every candidate lesson the task surfaced: a recurring review finding, a non-obvious bug cause, a rejected approach, an architectural decision, or the canonical "this kind of change belongs in an existing part of the system, not a new abstraction" insight.
Keep a candidate only when it clears all of:
Drop every candidate that fails any gate. If no candidate clears the bar, record nothing and report no entry: nothing cleared the promotion bar — a trivial task writes nothing.
One entry per lesson, in the greppable format from the rule:
### <slug> — <one-line lesson>
- Trigger: <the recurring situation that makes this lesson apply again>
- Rule: <the decision / what to do next time>
- Example: <a concrete pointer: file / area / symbol>
- Source: <PR / issue link> Added: <YYYY-MM-DD>
- Role: <daidalos | metis | talos | argos | apollon | shared><slug> is kebab-case and unique within the file. Added: is today's date. Role: is the value of the AGENT_ROLE input (defaults to shared when not provided). Strip any secret / credential / token / PII before writing.
Read the existing file and curate so it stays small and non-redundant:
rules/** file.Role: values: if both talos and shared carry the same lesson, keep the shared one and remove the role-specific one. Never widen a role-specific entry to shared unless the lesson genuinely applies across all roles.docs/memory/PROJECT_MEMORY.md in the entry format, after the curation pass deduped/superseded/pruned.CLAUDE.md, or .cursor/rules/project.mdc.no entry: nothing cleared the promotion bar.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.