본문으로 건너뛰기
cccskills
무료GitHub에 공개

refresh-research

Bulk-refresh research entries in ./research/ using parallel research-curator agents. Use when /refresh-research is invoked, stale research needs updating, or bulk re-verification of research entries is requested. Inventories entries by review date and age, runs RT-ICA pre-flight, spawns agents in waves of 5, then validates, reviews, and commits through research-curator. Supports --all, --stale, --category, --layer, and --dry-run flags.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(1)

  • SKILL.md9.2 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Invocation Input

Read arguments supplied by the active harness. If none were supplied, use --stale. If the host supplied an unsubstituted argument placeholder, ask for one supported scope before inventorying, spawning workers, or writing.

Refresh Research

Orchestrate parallel research-curator agents to bulk-refresh research entries in ./research/. Detects staleness, skips fresh entries, updates only what qualifies. Safe to run repeatedly.

Arguments

Supplied arguments control scope:

  • --all — Refresh every entry regardless of staleness
  • --stale (default) — Refresh entries past their review date
  • --category <name> — Refresh all entries in one category (e.g., --category agent-frameworks)
  • --layer <0|1|2> — Refresh entries whose frontmatter carries a matching metadata.layer (0=process, 1=language, 2=stack). The current entry template stores no layer field, so this matches only entries that carry one. See plugins/development-harness/docs/sdlc-layers/.
  • --dry-run — Report what would be refreshed; do not spawn agents

Workflow

Step 1: Inventory and Staleness Detection

Glob ./research/**/*.md (exclude README.md). For each entry, parse:

  1. YAML frontmatter — extract metadata.layer value (string "0", "1", or "2"; null if absent).
  2. Freshness tracking — extract Last Verified and Next Review dates from the frontmatter freshness_tracking mapping (last_verified, next_review); when absent, from a body Freshness Tracking section (legacy entries).
flowchart TD
    Start([Read entry]) --> ParseFM[Parse YAML frontmatter<br>Extract metadata.layer]
    ParseFM --> HasFreshness{Freshness tracking found in frontmatter or legacy body section?}
    HasFreshness -->|No| Stale1[STALE: no tracking]
    HasFreshness -->|Yes| ComputeDays[Compute Days Old = today minus Last Verified]
    ComputeDays --> PastDue{Next Review Recommended < today?}
    PastDue -->|Yes| Stale2[STALE: past review date]
    PastDue -->|No| TooOld{Last Verified > 6 months ago?}
    TooOld -->|Yes| Stale3[STALE: too old]
    TooOld -->|No| Fresh[FRESH: N days until next review]

Build inventory table: | File | Category | Layer | Last Verified | Next Review | Days Old | Stale? |

The Days Old column holds an integer: today's date minus the Last Verified date in days. If Last Verified is absent or unparseable, render as —.

The Layer column holds the metadata.layer value or — if absent.

Step 2: Apply Scope Filter

Apply filters sequentially. Filters combine with AND logic — each filter narrows the set from the previous step.

  1. Base set: Start with all inventoried entries.
  2. Staleness filter (default unless --all):
    • --all — keep all entries (no staleness filter)
    • --stale (default) — keep only entries marked STALE in Step 1
  3. Category filter (optional): --category <name> — keep only entries whose category directory matches <name>.
  4. Layer filter (optional): --layer <0|1|2> — keep only entries where metadata.layer equals the requested value. Entries without layer metadata (— in inventory) are excluded.
  5. Dry-run check: --dry-run — display the filtered target list and stop without spawning agents.

If zero entries remain after all filters: report "No entries match the applied filters." and stop. When --layer was specified and zero entries match, additionally report: "No entries found for layer {N}. Only entries carrying metadata.layer in their YAML frontmatter can be targeted by --layer."

When the --stale filter excludes entries because they are FRESH, list each excluded entry before continuing to Step 3:

Skipped (fresh):
  ./research/{category}/{name}.md — N days until next review (last: YYYY-MM-DD, vX.Y.Z)
  ./research/{category}/{name}.md — N days until next review (last: YYYY-MM-DD, vX.Y.Z)

This listing appears regardless of whether --dry-run is active. Under --all (no staleness filter), no entries are excluded by staleness, so this block does not appear.

Step 3: RT-ICA Pre-Flight

RT-ICA: Research Refresh
Goal: Refresh {N} research entries with current data from primary sources
Conditions:
1. At least one primary-source search/read route is available in this session
   (for example Ref-local search/read, another authenticated documentation reader, or an
   accessible upstream repository clone). Do not require Exa when it is unavailable.
2. Outbound network access is available for the selected route, or the worker can report the
   exact unavailable source without inventing content.
3. ./research/ is writable and entry files are parseable markdown.
4. GitHub metadata is gathered only when needed and an authenticated route is available;
   repository-clone content remains the documented fallback.
Decision: {APPROVED | BLOCKED}

If no primary-source search/read route is available, report BLOCKED with every unavailable route and stop before spawning workers. Otherwise approve the available route and let the curator's native source-access fallback govern individual inaccessible sources; never use training-data knowledge as a fallback.

Step 4: Baseline, Then Spawn Curators in Waves

Capture the curator's Mode Routing baseline before any write. Then route the refresh through its Rerun Mode: split targets into sequential waves of five, launch the available research-curator role once per entry with --rerun ./research/{category}/{name}.md, and wait for every result before starting the next wave. On Claude Code select the available project agent; on Codex select the native research-curator role. Preserve the exact prompt and structured result. Apply the curator's Failure Recovery to every failed, timed-out, or unchanged worker result before it enters Step 5.

After each wave, log results:

Wave {N} complete: {M}/{total} succeeded
  updated -- ./research/agent-frameworks/agno.md (v0.3->v0.5)
  failed  -- ./research/developer-tools/orbstack.md -- error: [reason]

Outcome categories: Updated (content changed) and Failed (agent could not complete, or left the target unchanged, which the curator treats as a failed refresh).

Step 5: Validate, Review, README, Commit

After all waves complete, follow the curator's Rerun Mode from the Validation Gate onward over the updated entries, then its Post-Actions. Entry Review, cross-referencing, README rows and the commit rules are the curator's and are not restated here. No Overlap Scan runs on refresh.

Step 6: Summary Report

# Research Refresh Report

**Date**: {YYYY-MM-DD}
**Scope**: {--all | --stale | --category X | --layer N}
**Total scanned**: {N} | **Targeted**: {M} | **Skipped (fresh)**: {K} ({min}–{max} days until next review)

## Results

| Outcome | Count | Notes |
|---------|-------|-------|
| Updated | {N} | |
| Failed | {N} | |
| Skipped (fresh) | {K} | {min}–{max} days until next review |

When K = 0, omit the Skipped (fresh) row. When K = 1, Notes column: `{N} days until next review`.
When K = 0 in the header: `**Skipped (fresh)**: 0`. When K = 1: `**Skipped (fresh)**: 1 ({N} days until next review)`.

## Updates

| Entry | Category | Change Summary |
|-------|----------|----------------|
| {name} | {category} | {version bump, snapshot change} |

## Failures

| Entry | Error |
|-------|-------|
| {name} | {reason} |

## Curator Output

Append the curator's [Rerun Mode Output](../research-curator/SKILL.md#rerun-mode-output) verbatim: Entry Review verdicts, with-issues counts, and Cross-References Added.

## Next Actions

- Due for review in 30 days: {list}
- Categories with no recent updates: {list}
- Failed entries to retry: {list}

Error Handling

  • No entries match filter — report "All entries are fresh. Nothing to refresh." and stop
  • No entries match --layer filter — report "No entries found for layer {N}. Only entries carrying metadata.layer in their YAML frontmatter can be targeted by --layer." and stop
  • Agent failures, timeouts, unchanged targets, shared-cause outages — follow the curator's Failure Recovery; include remaining failures in the summary Failures table

Related

  • research-curator — single-entry and batch research operations; this skill reuses its Rerun Mode, validation, review, relay, and post-actions.
  • Research execution route — Claude Code selects the available research-curator project agent; Codex selects .codex/agents/research-curator.toml. The selected role inherits the parent session's model, tools, permissions, and MCP configuration.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Add automated documentation updater to any Claude skill. Creates a Python sync script that downloads upstream docs, processes markdown for AI consumption, and maintains local cache with configurable refresh. Collects template variables, then delegates implementation through 5-phase workflow. Use when adding auto-updating reference documentation to plugins or skills.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Jamie-BitFlight/claude_skills672026년 10월 20일 업데이트

SAM-style feature initiation workflow — discovery through codebase analysis, architecture spec, task decomposition, validation, and context manifest. Use when a user asks to add a feature, plan a feature, or convert an idea into an executable SAM plan.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Jamie-BitFlight/claude_skills672026년 10월 20일 업데이트

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Jamie-BitFlight/claude_skills672026년 10월 20일 업데이트

Browser automation for AI agents using the agent-browser CLI and Playwright. Use when navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, logging into sites, or automating any browser task. Triggers on "open a website", "fill out a form", "click a button", "scrape data", "test this web app", "automate browser actions", or any programmatic web interaction request.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Jamie-BitFlight/claude_skills672026년 10월 20일 업데이트

Runs the description-drift experiment — spawns all Claude Code agents simultaneously to collect self-reported capabilities, then compares them against static frontmatter descriptions to reveal how reliable orchestrator routing based on descriptions actually is. Use when measuring description drift across the agent fleet, re-running the capability collection experiment, analyzing a specific agent's self-reported capabilities, or auditing whether frontmatter descriptions accurately reflect agent behavior.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Jamie-BitFlight/claude_skills672026년 10월 20일 업데이트

Create or adapt Claude Code agent definitions. Use when creating an agent, changing subagent configuration, selecting agent scope, or designing a specialized delegation role.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Jamie-BitFlight/claude_skills672026년 10월 20일 업데이트

Jamie-BitFlight의 스킬 모두 보기

이 스킬의 문제 신고