research-curate

Walk thoughts/shared/research/ and thoughts/shared/plans/, score each doc's staleness, regenerate INDEX.md, and append LLM-surfaced contradictions to CONTRADICTIONS.md (append-only). Source docs are never modified. Classification: current (age<90d AND refs valid), needs-review (age>=90d OR broken refs), likely-stale (age>=180d AND no recent activity). Inventory is deterministic; contradiction detection runs one LLM call per cluster (CTL-467 + CTL-468 / Initiative 4 Phase 1+2).

9 stars

Best use case

research-curate is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Walk thoughts/shared/research/ and thoughts/shared/plans/, score each doc's staleness, regenerate INDEX.md, and append LLM-surfaced contradictions to CONTRADICTIONS.md (append-only). Source docs are never modified. Classification: current (age<90d AND refs valid), needs-review (age>=90d OR broken refs), likely-stale (age>=180d AND no recent activity). Inventory is deterministic; contradiction detection runs one LLM call per cluster (CTL-467 + CTL-468 / Initiative 4 Phase 1+2).

Teams using research-curate should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/research-curate/SKILL.md --create-dirs "https://raw.githubusercontent.com/coalesce-labs/catalyst/main/plugins/dev/skills/research-curate/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/research-curate/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How research-curate Compares

Feature / Agentresearch-curateStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Walk thoughts/shared/research/ and thoughts/shared/plans/, score each doc's staleness, regenerate INDEX.md, and append LLM-surfaced contradictions to CONTRADICTIONS.md (append-only). Source docs are never modified. Classification: current (age<90d AND refs valid), needs-review (age>=90d OR broken refs), likely-stale (age>=180d AND no recent activity). Inventory is deterministic; contradiction detection runs one LLM call per cluster (CTL-467 + CTL-468 / Initiative 4 Phase 1+2).

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# research-curate

Regenerates `INDEX.md` inventories for `thoughts/shared/research/` and
`thoughts/shared/plans/`, then clusters docs by topic and asks an LLM to
identify contradicting claims, appending findings to `CONTRADICTIONS.md`.
Source markdown is never modified — only `INDEX.md` (overwritten) and
`CONTRADICTIONS.md` (appended) are written.

## What it does

1. **Inventory** — walks each directory, parses frontmatter (`date`, `topic`,
   `tags`), counts words, extracts file:line references (`file.ext:N` pattern).
2. **Score** — for each doc, computes age, validates ref paths against
   `HEAD`, and counts last-30d git log hits for the doc's top-3 tags.
3. **Classify**:
   - `current` — age < 90d AND all refs resolve at HEAD
   - `needs-review` — age >= 90d OR at least one broken ref
   - `likely-stale` — age >= 180d AND zero recent topic activity
4. **Generate** — overwrites `<dir>/INDEX.md` with three sections sorted by
   date descending. Output is fully deterministic.
5. **Cluster + contradict** (CTL-468) — tokenizes `tags` ∪ `topic`, computes
   pairwise Jaccard similarity, unions docs with score ≥ 0.4 via union-find.
   Clusters of size 3–10 are kept (smaller dropped, larger capped at 10).
   For each cluster, one LLM call (default `claude -p`) receives a
   token-bounded prompt (1500 chars/doc) asking for contradictions. New
   findings are appended to `<dir>/CONTRADICTIONS.md` under a
   `## YYYY-MM-DD — <topic>` heading. Existing entries are never modified.

## Invocation

```bash
# Curate both directories in-place (inventory + contradictions)
bash plugins/dev/scripts/research-curate/run.sh thoughts/shared/research
bash plugins/dev/scripts/research-curate/run.sh thoughts/shared/plans

# Inventory only — skip the LLM-driven contradiction pass
bash plugins/dev/scripts/research-curate/run.sh --skip-contradictions \
  thoughts/shared/research

# Dry run — INDEX written to /tmp; contradictions never touched
bash plugins/dev/scripts/research-curate/run.sh --dry-run thoughts/shared/research
```

Each invocation prints summary lines:

```
thoughts/shared/research: current=42 needs-review=83 likely-stale=80 → thoughts/shared/research/INDEX.md
thoughts/shared/research: contradictions clusters=5 appended=3 → thoughts/shared/research/CONTRADICTIONS.md
```

Projected cost for the weekly Routine: ~$0.38/run (75K input tokens × $5/M),
~$1.50/month.

## Skill body

When invoked as `/catalyst-dev:research-curate`, run both directories
sequentially and report the summary lines back to the user.

```bash
set -euo pipefail
SCRIPT="${CLAUDE_PLUGIN_ROOT:-.}/scripts/research-curate/run.sh"
[[ -x "$SCRIPT" ]] || SCRIPT="plugins/dev/scripts/research-curate/run.sh"

bash "$SCRIPT" thoughts/shared/research
bash "$SCRIPT" thoughts/shared/plans
```

Source-doc immutability is enforced by `inventory.sh` (which only ever reads
source markdown), `run.sh` (which writes exclusively to `INDEX.md` or a
`/tmp/` dry-run path), and `append-contradictions.sh` (which opens
`CONTRADICTIONS.md` in append-mode only). The test suite asserts this
property against fixture repos via before/after hash comparisons.

## Out of scope (deferred)

- CMA Routine wiring (weekly cadence) — Phase 3 of Initiative 4 (CTL-469).
- LLM-generated one-line summaries — plan permits but defers for testability.
- LLM-driven clustering — fallback to deterministic Jaccard is preserved for
  cost predictability (Phase 3 refactor option in the plan).

## Tests

```
bash plugins/dev/scripts/__tests__/research-curate-inventory.test.sh
bash plugins/dev/scripts/__tests__/research-curate-contradictions.test.sh
```

Related Skills

user-research-synthesis

9
from coalesce-labs/catalyst

Turn user interviews into actionable insights. Advanced synthesis techniques and frameworks.

research-codebase

9
from coalesce-labs/catalyst

Conduct comprehensive codebase research using parallel sub-agents. **ALWAYS use when** the user asks to 'research', 'investigate', 'explore the codebase', 'how does X work', 'find out about', or needs deep analysis of how existing code is structured. Produces a research document in thoughts/shared/research/ with file:line references.

phase-research

9
from coalesce-labs/catalyst

Phase agent for the research step of the 9-phase orchestrator pipeline (CTL-450). Wraps /catalyst-dev:research-codebase and produces thoughts/shared/research/<date>-<ticket>.md, then emits phase.research.complete.<ticket>. Reads triage.json from the worker dir as its prior-phase artifact. Spawned via plugins/dev/scripts/phase-agent-dispatch, which invokes it via slash command — hence `user-invocable: true`.

write-prod-strategy

9
from coalesce-labs/catalyst

Product strategy docs using 7-component framework

strategy-sprint

9
from coalesce-labs/catalyst

Create product strategy in 1 day, 1 week, or 1 month timeframes. Progressive strategy development framework.

ralph-wiggum

9
from coalesce-labs/catalyst

Devil's advocate PRD/document reviewer with humor and sharp critique

prioritize

9
from coalesce-labs/catalyst

Classify PM tasks using LNO Framework (Leverage/Neutral/Overhead) to focus on high-impact work.

prd-review-panel

9
from coalesce-labs/catalyst

Multi-agent PRD review (7 perspectives)

prd-draft

9
from coalesce-labs/catalyst

Create a PRD (product requirements document) for features and initiatives. Guides through clarifying questions, generates a structured draft with hypothesis, strategic fit, non-goals, success metrics, and rollout plan, then offers multi-agent review. Use when the user asks to create a PRD, product spec, feature spec, requirements doc, or product brief.

launch-checklist

9
from coalesce-labs/catalyst

Comprehensive product launch planning

impact-sizing

9
from coalesce-labs/catalyst

Quantify feature value with driver trees, confidence levels, and the 4-step sizing framework.

feature-results

9
from coalesce-labs/catalyst

Post-launch analysis and results documentation. Document what shipped and what we learned.