skills/research-project-memory/SKILL.md
Maintain hierarchical ML research project memory. Use for claim, evidence, provenance, risk, action, handoff, worktree, phase, source-visibility, paper/code/slides, review, and rebuttal state.
npx skillsauth add a-green-hand-jack/ml-research-skills research-project-memoryInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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.md
memory/BRIEFING.md first when resuming an existing project — it is the ≤30-line compact state snapshot that every session needs before acting.memory/project-conventions.md immediately after BRIEFING.md — it lists active rules the agent must follow in this specific project (wrappers, paths, server constraints, scope rules). Conventions change as the project evolves; treat Active rows as binding, Suspended as skipped, Expired as history-only.references/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 name
Determine 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/ directory
Read 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-007
Avoid 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 cuttesting
Bootstrap project-local ml-research-skills. Use from global installs when creating a new ML research project, enabling this collection in an existing ML research repo, or deciding whether to install the full bundle locally. Route to project-init for new projects; do not handle paper or experiment work directly.
development
Route project operations tasks — git, memory, bootstrap, remote, workspace, code review, timeline, ops — to the correct skill. Use when the task involves commits, pushes, worktrees, project memory, enabling project-local skills, SSH/server coordination, sidecar runners, or audits. Do not solve the ops task directly.
testing
Route ML/AI paper writing tasks to the correct skill — contract planning, prose drafting, section writing, consistency editing, review simulation, rebuttal, submission, or citation work. Use when the task involves writing, revising, reviewing, or submitting a paper instead of guessing between paper-writing-assistant, paper-writing-contract-planner, paper-reviewer-simulator, auto-paper-improvement-loop, or citation skills. Do not draft prose directly.
data-ai
Project-local router for ML research skill selection. Use inside an initialized ML research project, or while maintaining this skill repo, when the user describes an ML research/paper/experiment/discovery/ops/release workflow and may not know the skill; route to a domain router or high-signal leaf. Do not use for generic non-ML projects.