.fyi
SkillsMCPPluginsSubagents

Browse by category

DevOps & CI/CD SkillsProductivity & Workflow SkillsOther SkillsProduct & Project Management SkillsDocumentation & Knowledge SkillsCode Review & Refactor SkillsBackend & APIs SkillsAgent Meta & Communication SkillsResearch SkillsSecurity SkillsUX UI & Design SkillsTesting & QA SkillsSee all →

Every Claude Code skill, MCP server, plugin and subagent in one directory. Searchable, comparable, and one command from installed. Live stats from GitHub, npm and PyPI.

We're on Product HuntYour agent's app storeCheck it out →
Agent SkillsMCP ServersPluginsSubagentsCoding Agents
CollectionsOfficial publishersGlossaryFAQBlogSearchSavedFeedback
PrivacyTermsllms.txtSitemap

made with ♥ · © 2026 aaaa.fyi

Independent project · real data from public registries

…/session-orchestrator/memory-proposal-collector
home/subagents/kanevry/session-orchestrator/memory-proposal-collector
kanevry avatar

memory-proposal-collector

bykanevry· 16 subagents

Stars

48

Forks

8

Category

Documentation & Knowledge

View on GitHub

TL;DR

Reference documentation (NOT a dispatchable agent) for the coordinator-direct AUQ rendering flow at session-end Phase 3.6.3. The coordinator collects proposals from .orchestrator/metrics/proposals.jsonl via collectProposals() and renders the multiSelect AUQ in batches of 4. A

How to install memory-proposal-collector?

kanevry/session-orchestrator/memory-proposal-collector
$curl -o .claude/agents/memory-proposal-collector.md https://raw.githubusercontent.com/kanevry/session-orchestrator/HEAD/agents/memory-proposal-collector.md

Installs into the current project.

›Prefer a prompt? Paste this to your agent

Install & use

Install memory-proposal-collector by running `curl -o .claude/agents/memory-proposal-collector.md https://raw.githubusercontent.com/kanevry/session-orchestrator/HEAD/agents/memory-proposal-collector.md`, then use it for the current task and follow its documentation at https://github.com/kanevry/session-orchestrator.

Files · 1

View on GitHub
agents/memory-proposal-collector.md
1# Memory Proposal Collector (Reference Documentation)
2 
3**NOT a dispatchable subagent.** This file documents the coordinator-direct AUQ rendering flow
4that runs at session-end Phase 3.6.3. Do not attempt to dispatch `memory-proposal-collector` as
5an agent — the coordinator will receive "agent type not found" and that is by design. See
6[Why this is documentation, not an agent](#why-this-is-documentation-not-an-agent) for rationale.
7 
8---
9 
10## Overview
11 
12At session-end Phase 3.6.3 the coordinator presents pending memory proposals to the user for
13approval or rejection. Proposals are short learning candidates queued by the
14`memory-propose.mjs` CLI during the session (typically from hook invocations, auto-generated
15by subagents that detected a repeatable pattern worth recording).
16 
17The flow runs **coordinator-direct**: the coordinator calls library functions, renders an
18`AskUserQuestion` picker, and writes results — no subagent dispatch involved.
19 
20---
21 
22## Gate Conditions
23 
24This flow runs only when ALL of the following are true:
25 
261. **`persistence: true`** is set in Session Config (CLAUDE.md `## Session Config` block).
272. **`memory.proposals.enabled: true`** is set in Session Config (default when the
28 `pre-bash-memory-propose-audit` hook is active).
293. **`.orchestrator/metrics/proposals.jsonl`** exists and is non-empty (≥1 line).
30 
31If any condition fails, the coordinator emits a single info-line
32(`[3.6.3] Memory proposals: skip — <reason>`) and continues to Phase 3.6.5.
33 
34---
35 
36## Coordinator Step-by-Step
37 
38### Step 1 — Load proposal queue
39 
40```js
41import { collectProposals } from '../scripts/lib/memory-proposals/collector.mjs';
42const { queue, stats, perWaveSummaries } = await collectProposals({ repoRoot });
43```
44 
45> **Note:** `sessionId` is supplied by the coordinator at the call site (e.g., read from
46> STATE.md frontmatter); it is NOT returned by `collectProposals`.
47 
48`collectProposals()` reads `.orchestrator/metrics/proposals.jsonl`, parses each line as a
49`ProposalRecord`, and returns them in **FIFO order** (insertion order, not sorted by
50confidence). This matches the D3 decision locked in Wave 1.
51 
52### Step 2 — Empty-queue short-circuit
53 
54```js
55if (queue.length === 0) {
56 log.info('[3.6.3] Memory proposals: queue empty — skip');
57 return;
58}
59```
60 
61Silent skip. No user interaction.
62 
63### Step 3 — Determine batch layout
64 
65| Queue size | Batches | AUQ calls |
66|---|---|---|
67| 1 – 4 | 1 batch (all proposals) | 1 |
68| 5 – 8 | 2 batches of ≤4 | 2 |
69| 9 – 12 | 3 batches of ≤4 | 3 |
70| N | `ceil(N / 4)` batches | `ceil(N / 4)` |
71 
72Batches are sequential, not parallel. The coordinator waits for the user's response to batch
73N before presenting batch N+1.
74 
75### Step 4 — Render AUQ per batch
76 
77For each batch of up to 4 proposals, call `AskUserQuestion` with the template documented in
78[AUQ Question Template](#auq-question-template) below.
79 
80### Step 5 — Collect and persist results
81 
82After all batches are resolved:
83 
84```js
85import { promoteAndClear, archiveRejected }
86 from '../scripts/lib/memory-proposals/sink.mjs';
87 
88// sessionId is read by the coordinator from STATE.md frontmatter (e.g. session_id field),
89// NOT returned by collectProposals — see Step 1 note above.
90const sessionId = parseStateMd(repoRoot).session_id;
91 
92const writeResult = await sink.promoteAndClear({ approved, sessionId, repoRoot });
93await sink.archiveRejected({ rejected, repoRoot, reason: 'user-declined' });
94```
95 
96`promoteAndClear()` composes `writeApproved()` + `clearProposalsJsonl()` behind a single
97mechanical guard (#797/#828): it calls `writeApproved({ approved, repoRoot, sessionId })`
98first, computes `expected` from `approved.length`, and clears `proposals.jsonl` — via
99`clearProposalsJsonl()` internally — ONLY when `written === expected && errors.length === 0`.
100There is no separate write-then-clear call sequence for the coordinator to reorder or forget
101to gate; the guard is now IN-CODE. The coordinator's job is to inspect the returne

Preview

kanevry/session-orchestratorkanevry/session-orchestrator

# Memory Proposal Collector (Reference Documentation)

**NOT a dispatchable subagent.** This file documents the coordinator-direct AUQ rendering flow

that runs at session-end Phase 3.6.3. Do not attempt to dispatch `memory-proposal-collector` as

an agent — the coordinator will receive "agent type not found" and that is by design. See

Repokanevry/session-orchestrator
TypeSubagents
CategoryDocumentation & Knowledge
UpdatedJul 2026
LicenseMIT
First seenJul 27, 2026

Tags

Subagent

Related

6 picks
Type
  1. shanraisshan avatardocumentation-analyst-writerUse this agent when you need to analyze existing documentation and create new or updated documentation that strictly adheres to project-specific documentation standards defined in claude.md.SubagentsJul 202664k
  2. pbakaus avatarimpeccable-documenterRecords DESIGN.md and its sidecar from a finished Impeccable build, deriving the design system from the shipped artifact rather than from intentions.SubagentsJul 202650k
  3. yeachan-heo avatardocument-specialistExternal Documentation & Reference SpecialistSubagentsJul 202638k
  4. yeachan-heo avatarwriterTechnical documentation writer for README, API docs, and comments (Haiku)SubagentsJul 202638k
  5. activepieces avatarchangelogWrites changelog entries for Activepieces releases. Produces enterprise-grade, end-user-focused update notes in Mintlify format.SubagentsJul 202623k
  6. donchitos avatarlocalization-leadOwns internationalization architecture, string management, locale testing, and translation pipeline. Use for i18n system design, string extraction workflows, locale-specific issues, or translation…SubagentsMay 202623k