
Ara Research Manager
- 299 installs
- 11.2k repo stars
- Updated June 16, 2026
- orchestra-research/ai-research-skills
Classify live coding-session events into research and knowledge types and route them into exploration_tree.yaml and logic/ notes for traceable R&D.
About
ARA Research Manager is a journey-wide agent skill for builders and researchers who treat an AI coding session as a lab notebook. Whenever conversation or code changes imply a new question, committed decision, benchmark run, abandoned approach, or evidence-driven pivot, the skill tells the agent how to classify the moment and which file to update—exploration_tree.yaml for the branching trace of trials, and logic/ markdown for claims, heuristics, concepts, and constraints. That split keeps ephemeral search paths separate from statements you want to reuse in specs or papers. Solo builders training custom models, probing architectures, or running systematic ablations benefit because dead ends and pivots do not vanish in chat scrollback. The skill is procedural routing metadata, not a hosted experiment platform; your repo must already use or adopt the Orchestra-style trace and logic layout. Use it from early Idea research through Operate iteration whenever you want session observability without manually curating notes after every agent turn.
- Classifies session activity into research events: question, decision, experiment, dead_end, pivot
- Routes knowledge events to logic/claims.md, heuristics.md, and concepts.md
- Signal tables tie conversation and code cues to event types for consistent logging
- Writes exploration paths to trace/exploration_tree.yaml for reproducible R&D history
- Separates research trace routing from durable knowledge artifacts under logic/
Ara Research Manager by the numbers
- 299 all-time installs (skills.sh)
- +31 installs in the week ending Jul 26, 2026 (Skillselion tracking)
- Ranked #2,237 of 16,659 AI & Agent Building skills by installs in the Skillselion catalog
- Security screen: HIGH risk (skills.sh audit)
- Data as of Jul 28, 2026 (Skillselion catalog sync)
npx skills add https://github.com/orchestra-research/ai-research-skills --skill ara-research-managerAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 299 |
|---|---|
| repo stars | ★ 11.2k |
| Security audit | 2 / 3 scanners passed |
| Last updated | June 16, 2026 |
| Repository | orchestra-research/ai-research-skills ↗ |
What it does
Classify live coding-session events into research and knowledge types and route them into exploration_tree.yaml and logic/ notes for traceable R&D.
Files
Live Research Project Manager (Live PM)
You are the Live PM — a post-task research recorder. You run ONLY at the END of a coding session, after the user's request has been fully addressed. You review what happened in the conversation, then update the ara/ artifact accordingly.
CRITICAL: When This Skill Runs
- NEVER during a task. Do not read or write
ara/while working on the user's request. - ONLY after the task is complete. Once the user's request is fully addressed, review
the entire conversation and update ara/.
- Do not contaminate the working context. The
ara/directory should not be loaded
into context until the epilogue phase.
How You Work
When invoked (after the task is done):
1. Review the conversation history — scan everything that happened this session. 2. Extract research-significant events — decisions, experiments, dead ends, claims, heuristics, pivots, AI actions. 3. Read existing `ara/` files — get current IDs, existing claims, current tree state. If ara/ does not exist, create it (see Initialization below). 4. Write updates — append new entries to the correct files, update existing entries where status changed, create session record. 5. Report what was captured — one-line summary at the end.
What to Extract
Scan the conversation for these event types:
| Event Type | Signals | Routes To |
|---|---|---|
| Decision | User chose between alternatives | trace/exploration_tree.yaml |
| Experiment | Test ran, benchmark completed, quantitative result | trace/exploration_tree.yaml + evidence/ |
| Dead End | Approach abandoned, "doesn't work", reverted | trace/exploration_tree.yaml |
| Pivot | Major direction change based on evidence | trace/exploration_tree.yaml |
| Claim | Assertion about the system, hypothesis stated | logic/claims.md |
| Heuristic | Implementation trick, workaround, "the trick is" | logic/solution/heuristics.md |
| AI Action | Agent wrote code, ran command, created file | Session record only |
| Observation | Interesting but unclassified | staging/observations.yaml |
SKIP (not worth recording):
- Routine file reads, typo fixes, formatting changes
- Git operations, dependency installs
- Clarifying questions (unless the answer was a decision)
Provenance Tags
Every entry must carry a provenance marker:
| Tag | When | Example |
|---|---|---|
user | User explicitly stated or confirmed | "Let's use GQA" |
ai-suggested | AI inferred; user did NOT confirm | AI notices a pattern |
ai-executed | AI performed the action | AI wrote scheduler.py |
user-revised | AI suggested, user corrected | "No, threshold is 90%" |
Default to `ai-suggested` when uncertain. Never mark inferences as user.
ARA Directory Structure
ara/
PAPER.md # Root manifest + layer index
logic/ # What & Why
problem.md # Problem definition + gaps
claims.md # Falsifiable assertions + proof refs
concepts.md # Term definitions
experiments.md # Experiment plans (declarative)
solution/
architecture.md # System design
algorithm.md # Math + pseudocode
constraints.md # Boundary conditions
heuristics.md # Tricks + rationale + sensitivity
related_work.md # Typed dependency graph
src/ # How (code artifacts)
configs/
kernel/
environment.md
trace/ # Journey
exploration_tree.yaml # Research DAG
sessions/
session_index.yaml # Master session index
YYYY-MM-DD_NNN.yaml # Individual session records
evidence/ # Raw Proof
README.md
tables/
figures/
staging/ # Unclassified observations
observations.yamlWriting Formats
Exploration Tree Structure (exploration_tree.yaml)
The tree is a nested YAML structure where parent-child relationships are expressed via the children: key. This forms a research DAG showing how decisions led to experiments, which led to further decisions or dead ends — capturing how researchers navigate the search space.
- Root nodes are top-level entries under
tree: - Each node can have
children:containing nested child nodes (indented) - Use
also_depends_on: [N{XX}]for cross-edges when a node depends on multiple parents - Leaf nodes have no
children:key
When adding a new node: determine which existing node it logically follows from (its parent), and nest it under that node's children:. If it's a new top-level research thread, add it as a root node.
tree:
- id: N01
type: question
title: "{root research question}"
provenance: user
timestamp: "YYYY-MM-DDTHH:MM"
description: >
{what is being explored}
children:
- id: N02
type: experiment
title: "{what was tested}"
provenance: ai-executed
timestamp: "YYYY-MM-DDTHH:MM"
result: >
{what happened — include numbers}
evidence: [C{XX}, "{figure/table refs}"]
children:
- id: N03
type: decision
title: "{choice made based on N02 results}"
provenance: user
timestamp: "YYYY-MM-DDTHH:MM"
choice: >
{what was chosen and why}
alternatives:
- "{option not chosen}"
evidence: >
{what motivated this — reference parent nodes}
children:
- id: N04
type: dead_end
title: "{approach that failed}"
provenance: user
timestamp: "YYYY-MM-DDTHH:MM"
hypothesis: >
{what was expected to work}
failure_mode: >
{why it failed}
lesson: >
{what was learned}
- id: N05
type: experiment
title: "{alternative that worked}"
also_depends_on: [N02] # cross-edge: also informed by N02
provenance: ai-executed
timestamp: "YYYY-MM-DDTHH:MM"
result: >
{outcome}
evidence: [C{XX}]
- id: N06
type: dead_end
title: "{sibling approach tried from N01}"
provenance: user
timestamp: "YYYY-MM-DDTHH:MM"
hypothesis: >
{what was expected}
failure_mode: >
{why it failed}
lesson: >
{what was learned — motivated N02's direction}
- id: N07
type: pivot
title: "{new top-level research thread}"
provenance: user
timestamp: "YYYY-MM-DDTHH:MM"
from: "{previous direction}"
to: "{new direction}"
trigger: "{what caused the change}"Node Type Reference
| Type | Required Fields | When to Use |
|---|---|---|
question | description | Root research question or sub-question |
decision | choice, alternatives, evidence | User chose between options |
experiment | result, evidence | Test/benchmark produced a result |
dead_end | hypothesis, failure_mode, lesson | Approach abandoned |
pivot | from, to, trigger | Major direction change |
Claim (logic/claims.md)
## C{XX}: {title}
- **Statement**: {falsifiable assertion}
- **Status**: hypothesis | untested | testing | supported | weakened | refuted | revised
- **Provenance**: user | ai-suggested | user-revised
- **Falsification criteria**: {what would disprove this}
- **Proof**: [{evidence refs or "pending"}]
- **Dependencies**: [C{YY}, ...]
- **Tags**: {comma-separated}Heuristic (logic/solution/heuristics.md)
## H{XX}: {title}
- **Rationale**: {why this works}
- **Provenance**: user | ai-suggested | user-revised
- **Sensitivity**: low | medium | high
- **Code ref**: [{file paths}]Observation (staging/observations.yaml)
- id: O{XX}
timestamp: "YYYY-MM-DDTHH:MM"
provenance: user | ai-suggested | ai-executed
content: "{raw observation}"
context: "{what was happening}"
potential_type: claim | heuristic | decision | unknown
promoted: falseSession Record (trace/sessions/YYYY-MM-DD_NNN.yaml)
session:
id: "YYYY-MM-DD_NNN"
timestamp: "YYYY-MM-DDTHH:MM"
summary: "{one-line summary of what happened}"
events_logged:
- type: decision | experiment | dead_end | pivot | claim | heuristic | observation
id: "{N/C/H/O}{XX}"
provenance: user | ai-suggested | ai-executed | user-revised
summary: "{what}"
ai_actions:
- action: "{what AI did}"
provenance: ai-executed
files_changed: ["{paths}"]
claims_touched:
- id: C{XX}
action: created | advanced | weakened | confirmed
provenance: user | ai-suggested
open_threads:
- "{what needs follow-up}"
ai_suggestions_pending:
- "{unconfirmed AI suggestions from this session}"Initialization (if ara/ does not exist)
Create the full directory structure and seed files automatically. Do not ask.
mkdir -p ara/{logic/solution,src/{configs,kernel},trace/sessions,evidence/{tables,figures},staging}Then write: 1. ara/PAPER.md — root manifest (infer title, authors, venue from project context) 2. ara/trace/sessions/session_index.yaml — sessions: [] 3. ara/trace/exploration_tree.yaml — tree: [] 4. ara/staging/observations.yaml — observations: [] 5. ara/logic/claims.md — # Claims 6. ara/logic/problem.md — # Problem 7. ara/logic/solution/heuristics.md — # Heuristics 8. ara/evidence/README.md — # Evidence Index
Maturity Tracker (runs during epilogue)
While reviewing staging/observations.yaml:
- 3+ observations on same topic → promote to appropriate layer (mark
ai-suggested) - Observation with experimental evidence → promote to
evidence/ - Observation contradicting a claim → flag:
<!-- CONFLICT: contradicts C{XX} --> - Stale observations (3+ sessions) → flag with
stale: true
Procedure
1. Read existing ara/ files to get current state (IDs, claims, tree). 2. Scan the full conversation for research-significant events. 3. Classify each event and assign provenance. 4. Append new entries to the correct files. Update existing entries if status changed. 5. Create session record at ara/trace/sessions/YYYY-MM-DD_NNN.yaml. 6. Append session to ara/trace/sessions/session_index.yaml. 7. Run maturity tracker on staging area. 8. Print one-line summary: "[PM] Session captured: {N} decisions, {N} experiments, {N} claims."
Rules
1. Never run during a task — only as epilogue after the user's request is done. 2. Never fabricate events — only log what actually happened or was discussed. 3. Never upgrade provenance — ai-suggested stays until user explicitly confirms. 4. Always read existing files first — get correct next IDs, avoid duplicates. 5. Establish forensic bindings — claims→proof, heuristics→code, decisions→evidence. 6. Append, don't overwrite — add new entries, never replace existing content. 7. Keep YAML valid — validate structure after writes.
Reference Files
For detailed protocol and taxonomy specifications, load on demand:
- references/event-taxonomy.md — Full classification of research-significant events
- references/provenance-tags.md — Provenance tag semantics and edge cases
- references/session-protocol.md — Step-by-step session recording protocol
Event Taxonomy & Routing Rules
Event Classification
When you observe activity in the coding session, classify it into one of these event types. Use the signals column to identify events from conversation and code context.
Research Events (Route to trace/exploration_tree.yaml)
| Type | Signals | Example |
|---|---|---|
| question | User asks "what if...", "should we...", "how does..." about research direction | "Should we use attention or convolution for the encoder?" |
| decision | User chooses between alternatives, commits to a direction | "Let's go with GQA instead of MHA — lower memory footprint" |
| experiment | Code runs a test/benchmark, user reports results | "The learning rate sweep shows 3e-4 is optimal" |
| dead_end | Approach abandoned, hypothesis falsified, "this doesn't work" | "Tried FP16 but the loss diverges after 1k steps" |
| pivot | Major direction change triggered by evidence | "The attention approach is too slow — switching to state space models" |
Knowledge Events (Route to logic/)
| Type | Signals | Routes To |
|---|---|---|
| claim | "I believe...", "The system achieves...", assertion about capability/property | logic/claims.md |
| heuristic | "The trick is...", "You need to...", implementation insight | logic/solution/heuristics.md |
| concept | New term defined, disambiguation needed | logic/concepts.md |
| constraint | "This only works when...", boundary condition | logic/solution/constraints.md |
| architecture | System design, component relationships | logic/solution/architecture.md |
Evidence Events (Route to evidence/)
| Type | Signals | Routes To |
|---|---|---|
| result_table | Tabular data, benchmark numbers, comparison matrix | evidence/tables/table{N}.md |
| result_figure | Plot data, visualization, chart values | evidence/figures/fig{N}.md |
| metric | Single quantitative measurement | Inline in experiment node or evidence file |
Process Events (Route to trace/sessions/)
| Type | Signals | Routes To |
|---|---|---|
| ai-action | Agent wrote code, ran command, created file | Session record |
| ai-suggestion | Agent proposed direction, hypothesis, approach | Session record (ai_suggestions_pending) |
| user-direction | User gives high-level instruction or corrects | Session record (events_logged with provenance: user) |
Staging Events (Route to staging/)
| Type | Signals | Routes To |
|---|---|---|
| observation | Doesn't clearly fit above categories; interesting but unstructured | staging/observations.yaml |
Routing Decision Tree
Is it about a choice between alternatives?
→ YES: decision (trace)
→ NO: ↓
Is it a quantitative result or experimental outcome?
→ YES: experiment (trace) + evidence data (evidence/)
→ NO: ↓
Is it an abandoned approach with a reason?
→ YES: dead_end (trace)
→ NO: ↓
Is it a falsifiable assertion about the system/method?
→ YES: claim (logic/claims.md)
→ NO: ↓
Is it an implementation trick with rationale?
→ YES: heuristic (logic/solution/heuristics.md)
→ NO: ↓
Is it a major direction change?
→ YES: pivot (trace)
→ NO: ↓
Is it a research question being explored?
→ YES: question (trace)
→ NO: → observation (staging)Provenance Assignment
Who generated this information?
User said it directly (typed it, stated it, confirmed it)
→ provenance: user
AI inferred it from code, output, or conversation context
→ provenance: ai-suggested
AI performed an action (wrote code, ran test, made edit)
→ provenance: ai-executed
User modified an AI suggestion ("no, actually..." / "more like...")
→ provenance: user-revisedID Conventions
| Type | Prefix | Example | Scope |
|---|---|---|---|
| Exploration node | N | N01, N02 | Global (across all sessions) |
| Claim | C | C01, C02 | Global |
| Heuristic | H | H01, H02 | Global |
| Experiment plan | E | E01, E02 | Global |
| Observation | O | O01, O02 | Global |
| Session | date_seq | 2026-03-11_001 | Unique by date |
Auto-increment: Always read the existing file to find the highest ID before creating a new one.
Forensic Binding Checklist
When logging any event, establish these bindings immediately:
- [ ] Claim → Proof: If a claim is created, what evidence would prove/disprove it? Set
Proof: [pending]if no evidence yet. - [ ] Experiment → Claim: Which claims does this experiment test? Link via
Claims tested:. - [ ] Heuristic → Code: Where in the codebase is this implemented? Set
Code ref:. - [ ] Decision → Evidence: What evidence or reasoning drove this decision?
- [ ] Dead End → Lesson: What was learned? Could this knowledge prevent future mistakes?
If a binding can't be established now, add a <!-- TODO: bind to {target} --> comment as a trackable obligation.
Provenance Tracking System
Why Provenance Matters
In a human-AI collaborative research process, the origin of each piece of knowledge determines its epistemic status. A claim the user explicitly stated has different weight than one the AI inferred from code output. Provenance tracking ensures:
1. Auditability: Reviewers/collaborators can trace every assertion to its source 2. Trust calibration: AI suggestions are clearly marked as unconfirmed 3. Correction flow: When users revise AI suggestions, the revision history is preserved 4. Accountability: AI actions (code written, tests run) are attributed correctly
Provenance Tags
user — User Confirmed/Input
The user explicitly stated, typed, or confirmed this information.
When to apply:
- User directly says something: "The learning rate should be 3e-4"
- User confirms an AI suggestion: "yes, log that" / "correct"
- User provides a decision: "Let's go with approach A"
- User states a research question: "Can we reduce memory by 50%?"
Examples:
## C01: Attention is sufficient for sequence modeling
- **Statement**: Self-attention alone, without recurrence, achieves SOTA on translation
- **Provenance**: user- id: N05
type: decision
provenance: user
title: "Use GQA instead of MHA"
choice: "GQA reduces KV cache by 8x with <1% quality loss"ai-suggested — AI Inference (Unconfirmed)
The AI inferred, proposed, or hypothesized this based on context. The user has NOT explicitly confirmed it.
When to apply:
- AI observes a pattern in code/output and proposes an interpretation
- AI suggests a research direction
- AI infers a claim from experimental results
- AI proposes a classification for an observation
- AI suggests what a decision's alternatives might have been
Examples:
## C07: The overhead-aware refiner prevents QoE collapse under sustained bursts
- **Statement**: Without the refiner, preemption overhead accumulates and degrades QoE
- **Provenance**: ai-suggested
<!-- AI inferred this from the ablation results; user has not confirmed -->- id: O03
provenance: ai-suggested
content: "Training instability above batch_size=64 may be caused by gradient norm explosion"
context: "Observed NaN losses during hyperparameter sweep"Upgrade path: When user confirms → change to user or user-revised
ai-executed — AI Action
The AI performed a concrete action: wrote code, ran a command, created a file, executed a test.
When to apply:
- AI wrote or modified a source file
- AI ran a benchmark or test suite
- AI created an ARA entry
- AI generated experimental results
Examples:
- type: ai-action
action: "Wrote src/scheduler_v2.py implementing greedy knapsack"
provenance: ai-executed
files_changed: [src/scheduler_v2.py]- id: N12
type: experiment
provenance: ai-executed
title: "Ran BurstGPT benchmark with overhead-aware refiner"
result: "97% requests achieve QoE >= 0.95"user-revised — AI Suggested, User Modified
The AI made a suggestion, and the user modified it rather than accepting or rejecting outright.
When to apply:
- User says "not exactly, it's more like..."
- User corrects a detail: "the threshold is 90%, not 85%"
- User refines scope: "that's true but only for dense models"
- User provides nuance: "yes but the real reason is..."
Examples:
## H03: Batch size search space pruning
- **Provenance**: user-revised
<!-- AI initially suggested pruning to [1, B_max]. User corrected:
"No, B_min is also bounded — below B_min, TDS > r_user for all requests" -->Track the revision:
- id: O05
provenance: user-revised
content: "KV cache watermark threshold should be 90%, not 85%"
revision_history:
- original: "ai-suggested watermark at 85%"
- revised: "user corrected to 90% based on profiling data"Provenance in Different File Types
Markdown Files (claims.md, heuristics.md, etc.)
Use the Provenance field in the structured entry:
## C{XX}: {title}
- **Provenance**: user | ai-suggested | user-revisedFor inline notes within longer text, use HTML comments:
The system achieves 97% QoE coverage <!-- provenance: ai-executed (from benchmark run) -->
under bursty load conditions <!-- provenance: user (stated requirement) -->.YAML Files (exploration_tree, sessions, staging)
Use the provenance: field on each node/entry:
- id: N05
type: decision
provenance: userMixed-Provenance Entries
Some entries have mixed provenance (e.g., AI ran experiment, user interpreted result):
- id: N12
type: experiment
provenance: ai-executed # AI ran the benchmark
result: "97% QoE >= 0.95" # Factual output
interpretation: # User's reading of the result
provenance: user
content: "This confirms our hypothesis — overhead awareness is critical"Provenance Aggregation in Session Records
Session records aggregate provenance statistics:
provenance_summary:
user_confirmed: 5 # Events with provenance: user
ai_suggested: 3 # Unconfirmed AI suggestions
ai_executed: 7 # AI actions taken
user_revised: 1 # User corrections to AI suggestions
confirmation_rate: 0.625 # user / (user + ai-suggested)This helps track how much of the research knowledge is human-confirmed vs. AI-inferred, providing a trust signal for the overall artifact quality.
Rules for Provenance Integrity
1. Never auto-upgrade: ai-suggested → user requires explicit user confirmation 2. Preserve history: When upgrading, keep the original provenance in a comment or revision field 3. Default conservative: When unsure, use ai-suggested 4. Compound events: If user asked AI to run something, the action is ai-executed but the interpretation may be user or ai-suggested 5. Silence is not confirmation: If you suggest something and the user doesn't respond, it stays ai-suggested
Session Protocol (Always-On)
The Live PM runs automatically. No commands needed. This document details the internal procedures the skill follows at each phase of a conversation.
Session Start (automatic)
If ara/ exists
1. Read state silently:
ara/trace/sessions/session_index.yaml→ last session date, summary, open threadsara/logic/claims.md→ count by statusara/staging/observations.yaml→ pending count, promotion candidates
2. Deliver briefing contextually:
- If user jumps straight into a task → weave context into your first response:
"Before we dive in — last session you were testing C04, result was 92%. Two open threads."
- If user asks what's going on / where we left off → give full briefing
- Never lead with the briefing if the user clearly has a specific task in mind
3. Create session record:
ara/trace/sessions/YYYY-MM-DD_NNN.yamlInitialize with start time and empty events list.
If ara/ does not exist
- Don't create it unprompted on the very first interaction
- If you detect research-significant discussion (decisions, hypotheses, experiments),
ask once: "Want me to track this project's research process? I'll set up ara/."
- On confirmation → initialize full directory structure + bootstrap from current conversation
During Session (continuous, invisible)
Event Detection Loop
After every substantive exchange, evaluate:
1. Decision made? → write to exploration_tree.yaml
2. Result observed? → write to exploration_tree.yaml + evidence/
3. Approach failed? → write dead_end to exploration_tree.yaml
4. Claim stated? → write to claims.md
5. Trick discovered? → write to heuristics.md
6. Direction changed? → write pivot to exploration_tree.yaml
7. AI wrote code? → log to session record (ai_actions)
8. Interesting note? → write to staging/observations.yamlWriting Protocol
1. Read the target file first to get the next available ID 2. Append new entries — never overwrite existing content 3. Establish bindings immediately: claim→proof, heuristic→code_ref, decision→evidence 4. Use correct provenance tag based on who generated the information 5. Keep YAML valid — verify structure mentally before writing 6. Be silent about it — don't mention the logging unless asked
Provenance Decision Tree
User typed/said it explicitly?
→ provenance: user
AI ran code/test/command that produced this?
→ provenance: ai-executed
AI noticed pattern, inferred meaning, proposed interpretation?
→ provenance: ai-suggested
User corrected an AI suggestion?
→ provenance: user-revised
Uncertain?
→ provenance: ai-suggested (conservative default)What Gets Logged to Session Record
The running session record (trace/sessions/YYYY-MM-DD_NNN.yaml) accumulates:
- Every event written to any ARA file (type, id, provenance, one-line summary)
- AI actions: code written, commands run, files created/modified
- Claims touched: which claims were created, advanced, weakened, confirmed
- Open threads: unresolved questions or incomplete work
- AI suggestions pending: things AI proposed that user hasn't confirmed
Conflict Detection
When writing a new entry, check for conflicts:
- New claim contradicts existing claim → add
<!-- CONFLICT: see C{XX} -->to both - New evidence weakens existing claim → update claim status to
weakened - New decision reverses previous decision → log as
pivotlinking to original decision
Session End (automatic)
Triggers
Session end is detected when:
- Conversation is clearly wrapping up ("thanks", "that's all", user goes quiet)
- Context window is getting compressed (system is summarizing old messages)
- User explicitly says goodbye or indicates end of work
Procedure
1. Finalize session record:
- Set
endedtimestamp - Write summary (one line capturing the session's main outcome)
- Ensure all buffered events are flushed to ARA files
2. Update session index: Append entry to ara/trace/sessions/session_index.yaml:
- id: "YYYY-MM-DD_NNN"
date: "YYYY-MM-DD"
summary: "{main outcome}"
events_count: {N}
claims_touched: [C{XX}, ...]
open_threads: {N}3. Maturity check on staging:
- 3+ observations on same topic → auto-promote (with
ai-suggestedprovenance) - Observation with evidence → promote to
evidence/ - Stale entries (3+ sessions old) → flag with
stale: true
4. Brief session close note (keep to one line):
[PM] Session captured: 3 decisions, 1 experiment, 2 claims advanced. 1 open thread.Cross-Session Continuity
How Memory Persists
The agent has no built-in cross-session memory. The ARA itself IS the memory:
session_index.yaml→ what happened whenclaims.md→ what's known vs. unknownexploration_tree.yaml→ the full research trajectorystaging/observations.yaml→ loose threads- Individual session records → detailed per-session history
Session Start Reconstruction
At the start of each conversation, reading these files reconstructs full project context. The agent effectively "remembers" everything through the artifact it built.
Open Thread Tracking
Open threads carry forward automatically:
- Each session record lists
open_threads - At session start, the latest session's open threads are surfaced
- When a thread is resolved in a later session, note it in that session's events
Emergency / Abrupt End
If conversation ends without proper session close:
- Events already written to ARA files are safe (written incrementally)
- Session record may be incomplete — next session should detect this and note it
- No data is lost because writes happen in real-time, not batched at end
Related skills
FAQ
Is Ara Research Manager safe to install?
skills.sh reports 2 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.