research-project-memory — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited research-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.
git rev-parse --git-common-dir vs --show-toplevel. If they differ, you are in a worktree — use worktree-local paths for all writes until a result is confirmed.memory/BRIEFING.md — compact project state snapshot (≤30 lines)memory/project-conventions.md — active project-specific rules, wrappers, and forbidden commandsmemory/hot-results.md — top confirmed experiment results.agent/worktree-status.md (if in a worktree).agent/worktree-status.md. Graduate to memory/ only when a result is confirmed and directly changes a project-level claim.Do not read all memory boards at once. Load the minimal relevant boards for the current task.
Maintain project memory as a layered system, not a flat notes file. This skill gives agents a shared protocol for remembering what a research project is trying to prove, what evidence exists, what risks remain, and which component owns each next action.
Use this skill when:
paper/, code/, worktrees, slides/, reviewer simulation, or rebuttalThis is a coordination skill. It does not replace remote-project-control, experiment-design-planner, conference-writing-adapter, paper-reviewer-simulator, or rebuttal-strategist; it tells them where and how to persist trusted project state.
<installed-skill-dir>/
├── SKILL.md
├── references/
│ ├── closeout-protocol.md
│ ├── consistency-checks.md
│ ├── claim-lifecycle-protocol.md
│ ├── cross-module-handoff-contracts.md
│ ├── evidence-provenance-protocol.md
│ ├── memory-architecture.md
│ ├── object-schemas.md
│ ├── paper-source-visibility-protocol.md
│ ├── phase-dashboard-protocol.md
│ ├── toolchain-gates-protocol.md
│ └── writeback-protocol.md
└── templates/
├── component/
│ ├── component-status.md
│ ├── worktree-index.md
│ └── worktree-status.md
└── memory/
├── action-board.md
├── claim-board.md
├── component-index.yaml
├── current-status.md
├── decision-log.md
├── evidence-board.md
├── handoff-board.md
├── phase-dashboard.md
├── provenance-board.md
├── project.yaml
├── risk-board.md
└── source-visibility-board.mdreferences/memory-architecture.md, references/object-schemas.md, and references/writeback-protocol.md.references/claim-lifecycle-protocol.md, references/evidence-provenance-protocol.md, references/phase-dashboard-protocol.md, and references/cross-module-handoff-contracts.md when claims, evidence, project phase, paper writing, experiment planning, review, rebuttal, or cross-component handoffs are involved.references/paper-source-visibility-protocol.md when paper branches, Overleaf/GitHub sync, collaborator-visible source, anonymous submission source, arXiv, camera-ready source packages, or paper worktree cleanup are involved.references/toolchain-gates-protocol.md when code, paper, docs, Git, GitHub, remote, release, or artifact quality gates are configured, changed, or checked.references/consistency-checks.md when asked to audit project state, prepare a milestone, submit, write, review, or rebut.references/closeout-protocol.md before ending a substantial session or updating memory after meaningful work.memory/hot-results.md before any experiment-related decision — it holds the top current results in ≤20 lines.templates/ as the source of truth when bootstrapping missing memory files.author-visible, not agent-private..agent/, AGENTS.md, CLAUDE.md, writing memory, raw CSVs, plotting scripts, internal result docs, and reviewer strategy must not be hidden in author-visible, submission, arXiv, or camera-ready source.code/docs/ops/current-status.md and code/docs/ops/decision-log.md can record code operational state, but cross-component and cross-worktree coordination should still be visible in root memory/ and component .agent/ indexes.memory/component-index.yaml, component rollup in <component>/.agent/worktree-index.md, and leaf status in each <component-worktree>/.agent/worktree-status.md.memory/, component .agent/, or worktree memory.observed, user-stated, inferred, stale, or needs-verification.Scope detection is mandatory before any memory read or write. Getting this wrong causes agent confusion about which level to write to.
git rev-parse --show-toplevel # → current worktree root (may be a code-worktree, not project root)
git rev-parse --git-dir # → .git file or directory
git rev-parse --git-common-dir # → common .git dir; differs from --git-dir when inside a worktree
git branch --show-current # → active branch nameDetermine the scope:
--show-toplevel points to the project control root (contains memory/). Write confirmed, cross-component results to memory/.--show-toplevel is a path like <Project>/code-worktrees/<branch>/ and --git-common-dir points to a different .git. The current work is branch-scoped. In-progress results belong in .agent/worktree-status.md under the worktree root, not in ProjectRoot/memory/.When in worktree scope, locate the project root separately:
# From inside a worktree, the project root is usually 2–3 levels up
# e.g. <Project>/code-worktrees/<branch>/ → project root is <Project>/
# Confirm by checking for memory/ directoryRead in this order when in worktree scope:
.agent/worktree-status.md in the current worktree — local state, purpose, latest result<ProjectRoot>/memory/BRIEFING.md — project-wide context<ProjectRoot>/memory/project-conventions.md — active project rules<ProjectRoot>/memory/hot-results.md — confirmed project-level top resultsRead in this order when in project-root scope:
memory/BRIEFING.mdmemory/project-conventions.mdmemory/hot-results.mdmemory/current-status.md when more detail is neededThen inspect likely memory files:
memory/project.yamlmemory/component-index.yamlmemory/current-status.mdmemory/decision-log.mdmemory/claim-board.mdmemory/evidence-board.mdmemory/risk-board.mdmemory/action-board.mdmemory/provenance-board.mdmemory/handoff-board.mdmemory/phase-dashboard.mdmemory/source-visibility-board.mdpaper/.agent/paper/.agent/worktree-index.mdcode/.agent/code/.agent/worktree-index.mdslides/.agent/reviewer/.agent/rebuttal/.agent/memory/project.yaml, if configuredmemory/project.yaml, if configuredIf the project uses another layout, adapt the component paths but keep the same memory roles.
If the user asks to initialize memory, or if memory is missing and the task depends on it, create the minimum useful files from templates:
templates/memory/project.yaml -> memory/project.yamltemplates/memory/component-index.yaml -> memory/component-index.yamltemplates/memory/current-status.md -> memory/current-status.mdtemplates/memory/decision-log.md -> memory/decision-log.mdtemplates/memory/claim-board.md -> memory/claim-board.mdtemplates/memory/evidence-board.md -> memory/evidence-board.mdtemplates/memory/risk-board.md -> memory/risk-board.mdtemplates/memory/action-board.md -> memory/action-board.mdtemplates/memory/provenance-board.md -> memory/provenance-board.mdtemplates/memory/handoff-board.md -> memory/handoff-board.mdtemplates/memory/phase-dashboard.md -> memory/phase-dashboard.mdtemplates/memory/source-visibility-board.md -> memory/source-visibility-board.mdtemplates/memory/BRIEFING.md -> memory/BRIEFING.md — compact cross-session snapshot; update at every closeouttemplates/memory/hot-results.md -> memory/hot-results.md — top experiment results; update when a key result arrivestemplates/memory/project-conventions.md -> memory/project-conventions.md — living registry of project-specific agent rules; review at every major phase transitiontemplates/component/component-status.md -> <component>/.agent/<component>-status.mdtemplates/component/worktree-index.md -> <component>/.agent/worktree-index.md when the component uses worktreestemplates/component/worktree-status.md -> <component-worktree>/.agent/worktree-status.md when a code or paper worktree needs its own memoryAsk only for fields that cannot be inferred safely:
Before substantial work, summarize:
Keep the summary compact. Do not paste entire boards unless the user asks.
Read references/writeback-protocol.md.
Use this routing:
memory/project.yamlmemory/project.yamlmemory/project.yamlmemory/BRIEFING.md — update at every session closeout; re-inline top 3 conventions from project-conventions.mdmemory/hot-results.md — update when a key experiment result arrivesmemory/project-conventions.md — add when a new convention is established by any skill; expire when infrastructure, scope, or project phase makes it obsolete; review at every major phase transitionmemory/current-status.mdmemory/decision-log.mdmemory/claim-board.mdmemory/evidence-board.mdmemory/provenance-board.mdmemory/risk-board.mdmemory/action-board.mdmemory/phase-dashboard.mdmemory/handoff-board.mdmemory/source-visibility-board.md<component>/.agent/<component>-status.mdmemory/component-index.yaml<component>/.agent/worktree-index.md<worktree>/.agent/worktree-status.mdWhen in doubt, write a short pointer at the project layer and details in the component layer.
Read references/object-schemas.md. Read references/claim-lifecycle-protocol.md and references/evidence-provenance-protocol.md when a claim or evidence item changes.
Use stable IDs:
CLM-###: claimEVD-###: evidence itemEXP-###: experiment or run familyFIG-###: figure or tablePRV-###: provenance link from source data or analysis to evidence/assets/proseRSK-###: riskACT-###: actionDEC-###: decisionWTR-###: worktreeREV-###: review or rebuttal issueHND-###: cross-module handoffVIS-###: paper source visibility surface or policyGATE-###: toolchain gate or required project checkEvery major update should preserve links:
CLM-001 -> supported_by EVD-003 -> traced_by PRV-002 -> visualized_by FIG-002 -> threatened_by RSK-004 -> resolved_by ACT-007Avoid orphan objects. If a claim has no evidence, mark it as planned, evidence-needed, provisional, or cut.
Read references/phase-dashboard-protocol.md and references/cross-module-handoff-contracts.md.
Update memory/phase-dashboard.md when a project crosses or regresses across a major phase gate: idea validation, positioning, method design, implementation, experiment design, evidence production, paper asset building, drafting, internal review, submission, rebuttal, camera-ready, artifact release, or maintenance.
Update memory/handoff-board.md when one module produces payload another module should consume, such as method design to experiment design, experiment report to paper asset builder, evidence gap miner to experiment design, result asset builder to figure/table review, writing memory to section writers, reviewer simulator to evidence board, rebuttal strategist to experiments/writers, or camera-ready finalizer to artifact/release.
Each handoff should state producer, consumer, payload, source paths, expected output, acceptance check, staleness trigger, linked objects, and status.
Read references/paper-source-visibility-protocol.md.
Update memory/source-visibility-board.md when:
paper/main is treated as collaborator-visible rather than private.agent/, AGENTS.md, CLAUDE.md, raw CSVs, internal docs, plotting scripts, private paths, reviewer notes, or provenance files are found in a visible source surfaceUse visibility tiers: agent-private, author-visible, anonymous-submission, public-preprint, camera-ready-public, and publisher-artifact.
Read references/consistency-checks.md when auditing memory.
Check for:
Report mismatches as project risks or actions.
Read references/closeout-protocol.md.
Before ending a substantial session, update:
memory/current-status.mdmemory/phase-dashboard.md if the active phase or gate changedmemory/provenance-board.md if a result, asset, caption, table, figure, or result sentence changed source or verification statusmemory/handoff-board.md if a module produced, consumed, blocked, or invalidated a handoffmemory/source-visibility-board.md if a paper branch, worktree, Overleaf branch, submission source, or public source package changed visibility or cleanup statusmemory/component-index.yaml if worktrees were added, closed, parked, merged, or killedmemory/decision-log.md if a durable decision was madeCloseout should answer: what changed, what is trustworthy, what is stale, what should the next agent verify, and what is the next concrete action.
Before finalizing:
evidence-needed, provisional, parked, or cut~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.