# Research Weekly

> 주간 과제 스캔 — 신규 공고를 수집해 KB 기준으로 판정하고, 추진할 만한 건만 골라 계획서 초안까지 만듭니다. '이번 주 과제 뭐 있어', '주간 스캔 돌려줘', '새로 뜬 공고 확인해줘' 같은 요청에 대응합니다. 단건 공고 분석은 /rfp, 자료 흡수는 /kb를 사용합니다.

- Skill: `fivetaku/research-weekly` (Agent Skill)
- Install (CLI): `npx skillmds@latest add fivetaku/research-weekly`
- Raw SKILL.md: https://api.skillmd.com/api/skills/fivetaku/research-weekly/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Research & Search
- Author: fivetaku (https://skillmd.com/u/fivetaku)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/fivetaku/research-weekly

---


# weekly Workflow

Codex-compatible mirror of `weekly.md` from the `research` archetype.

# /weekly — 주간 과제 스캔

**매주 같은 일을 반복하지 않기 위한 루프.** 신규 공고만 걸러 KB 기준으로 판정하고, 통과한 것만 초안까지 끌고 간다.

```text
/weekly              # 전체 (수집 → 판정 → 상위 N건 초안)
/weekly scan         # 수집·판정까지만 (초안 없음)
/weekly draft {uid}  # 특정 공고만 초안
```

> **대부분의 주는 "해당 없음"이 정직한 결과다.** 실측(2026-08-04): 접수중+접수예정 38건 중
> 출연연 페르소나로 자격을 통과한 건 1건뿐이었다. 주관기관 유형 제한이 최대 병목이다.
> **억지로 후보를 만들지 않는다.**

---

## Phase 1 — 수집 (신규분만)

```bash
python3 60-scripts/ancm_state.py new --limit 50
```

- 이미 본 공고는 자동으로 걸러진다. 마감 지난 기록은 `closed`로 정리된다.
- 신규 0건이면 **여기서 끝낸다.** Phase 2로 가지 않는다.
- 소스 하나가 실패해도 나머지는 진행되고, 실패한 소스는 `⚠️`로 표시된다. **조용히 넘어가지 않는다.**

## Phase 2 — 1차 선별 (싼 판정 먼저)

**공고문 전문을 받기 전에** 제목·부처·마감만으로 명백한 제외를 걸러낸다. 붙임 다운로드는 비싸다.

| 제외 조건 | 근거 |
|----------|------|
| 유형이 조달입찰·기술수요조사·사전공고 | `frameworks/rnd-proposal-pipeline.md` P0.5 |
| 마감까지 **7일 미만** | 계획서 작성·컨소시엄 협의가 물리적으로 불가 |
| KB `outcomes`에 같은 사업 `skip` 이력 + 사유가 여전히 유효 | 재조사 불필요 |

제외한 건 즉시 기록한다.

```bash
python3 60-scripts/ancm_state.py mark {uid} --verdict skip --note "{사유}"
```

## Phase 3 — 자격 하드 게이트 (남은 건만)

살아남은 건에 대해서만 공고문을 받는다.

```bash
python3 60-scripts/rnd_ancm.py detail --uid {uid} --download-dir 20-raw/rfp/{slug}
npx -y kordoc {파일} --format markdown -o 공고문.md
```

`frameworks/rfp-fit-matrix.md` **§1.5 자격 선행 하드 게이트**를 적용한다.

- **주관연구개발기관 유형 제한**을 가장 먼저 본다. 실측상 이게 최대 병목이다.
- 자격 미달이면 **매트릭스를 작성하지 않고 종료**한다. `skip` + 사유 기록.
- ⛔ **자문·컨소시엄으로 자격을 메울 수 없다.** 자격은 조달 대상이 아니다.

## Phase 4 — 적합도 판정 + 랭킹

자격 통과분에 `/rfp` Step 0.5~3.5를 적용한다(KB 선조회 → 요건 분해 → 배점 역설계 → 판정 → KB 되먹임).

랭킹은 **네 축**으로 매긴다.

| 축 | 보는 것 |
|----|--------|
| **적합도** | 매트릭스 판정 (적합 > 조건부 > 부적합) |
| **여유** | 마감까지 남은 일수 — 컨소시엄이 필요하면 2주 이상 필요 |
| **규모** | 정부지원연구개발비 · 후속 사업 파급 |
| **재사용** | 기존 KB·산출물로 커버되는 비율 |

각 건을 `pursue` / `watch` / `skip`으로 기록한다.

## Phase 5 — 초안 (pursue 건만, 각각)

`pursue`로 판정된 건마다 **독립적으로** 파이프라인을 돌린다. 여러 건이면 병렬로.

```
P2 리서치 → P3 아이디어 → P4 스토리 → P5 계획서 초안 → check-submission
```

- 리서치는 서브에이전트로 축을 나눠 병렬 실행하되, **끝나면 산출 파일을 실제로 열어 확인한다**
  (파이프라인 게이트 ③-c — 조용한 실패가 아래 모든 단계의 품질 상한을 결정한다)
- 초안 완료 후 반드시 검사기를 돌린다.

```bash
python3 60-scripts/check-submission.py 40-reports/rfp/{공고}/proposal-제출본.md
```

- 발표자료(P6·P7)는 **초안 승인 후** 별도로 진행한다. 주간 루프에 넣지 않는다.

## Phase 6 — 리포트

`40-reports/weekly/{YYYY-MM-DD}.md`에 한 장으로 남긴다.

```markdown
# 주간 과제 스캔 — {날짜}

## 요약
신규 {N}건 · 자격통과 {M}건 · 추진 {K}건 · 초안 {K}건

## 추진 ({K})
| 공고 | 전문기관 | 마감 | 규모 | 판정 근거 | 초안 |

## 주시 ({W})
| 공고 | 마감 | 왜 이번엔 아닌가 | 언제 다시 보나 |

## 제외 ({S})
| 공고 | 사유 |

## KB 갱신
- agencies/programs/requirements에 새로 등재한 것

## 미확인
- 이번에 못 읽은 소스 (있으면)
```

---

## 자동 실행

주 1회 실행이 기본이다. 접수 마감이 몰리는 요일을 피해 **월요일 오전**을 권한다.

- 사람이 확인할 여지를 남기려면 **`scan`까지만 자동**으로 돌리고, 초안은 리포트를 보고 지시한다.
- 완전 자동으로 초안까지 돌리면 **`pursue` 판정이 사람 검토 없이 확정**된다. 그 판정이 틀리면 초안 작성이 통째로 낭비다.

## 품질 게이트

- [ ] 신규분만 처리했다 (`ancm_state.py new` 사용 — 전체 재수집 아님)
- [ ] **제외한 건마다 사유가 기록됐다** (`skip`은 `--note` 필수)
- [ ] 자격 미달을 컨소시엄·자문으로 메우지 않았다
- [ ] 판정 결과를 KB에 되먹였다 (`/rfp` Step 3.5)
- [ ] 리서치 서브에이전트 산출을 **실제 파일로 확인**했다 (게이트 ③-c)
- [ ] 초안마다 `check-submission.py` PASS
- [ ] 수집 실패한 소스가 리포트 `미확인`에 명시됐다
- [ ] **"해당 없음"을 결과로 인정했다** — 억지 후보 0건

## 참조

- 파이프라인: `frameworks/rnd-proposal-pipeline.md`
- 자격 게이트: `frameworks/rfp-fit-matrix.md` §1.5
- 단건 분석: `/rfp` · 자료 흡수: `/kb` · 계획서: `/proposal`
- 상태 추적: `60-scripts/ancm_state.py` · 수집: `rnd_ancm.py` · 검사: `check-submission.py`

