Community라이팅 & 에디팅github.com

research-question-generator

여러 AI 생성 에이전트로 연구 질문 후보 풀을 생성하고, 일반 프롬프트와 원거리 분야 전이 방식 두 가지 모드를 사용한 후 근접 중복을 병합하고 모든 질문을 평이하고 양면적인 스타일로 재작성합니다. 각 질문이 스크립트로 채점된 짧은 파일럿으로 테스트 가능한 분야에서 연구 질문을 검색할 때나, 선택 전 광범위하고 중복 제거된 후보 질문 풀이 필요할 때 사용하세요.

research-question-generator란 무엇인가요?

이 스킬은 여러 AI 생성 에이전트를 활용하여 연구 질문 후보 풀을 생성하고 정제하는 프로세스를 자동화합니다. 두 가지 모드(일반 프롬프트와 원거리 분야 전이)로 각각 질문을 생성한 후, 근접 중복을 감지하고 병합하여 중복을 제거합니다. 모든 질문은 평이하고 양면적인 스타일로 재작성되어 특정 방향성을 암시하지 않습니다. Claude, Ollama 등 다양한 AI 모델과 플랫폼을 지원하며, 파이썬 스크립트로 구성된 파이프라인을 통해 순차적으로 실행됩니다. 이 스킬은 연구 초기 단계에서 광범위한 후보 질문을 체계적으로 생성하고 정제하여, 이후 파일럿 테스트, 비판적 예측, 참신성 확인 등의 후속 스킬에 표준화된 입력을 제공합니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/techurbanist/research-skills/tree/HEAD/skills/generate-questions

Installed? Explore more 라이팅 & 에디팅 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

research-question-generator은(는) 무엇을 하나요?

이 스킬은 pool.json을 생성합니다: 각각 익명 ID를 가진 연구 질문 후보 목록으로, 근접 중복은 한 번씩 병합되고, 모든 질문이 동일한 평이한 스타일을 가지며 효과 방향을 명명하지 않도록 재작성됩니다. 다음 스킬들(screen-pilot, critique-forecast, check-novelty)은 이 파일을 입력으로 사용합니다.

먼저 필요한 것

  • 분야 프로필(field profile): 이 패키지에서 field-profile/TEMPLATE.md를 복사하여 여러분의 분야에 맞게 작성하고 프로젝트에 저장합니다(기본적으로 프로젝트 루트에 FIELD-PROFILE.md). 연구자가 그 내용(특히 분야, 파일럿이 실행될 대상, 파일럿 제한 사항, 답변을 알고 싶어할 사람)에 동의해야 합니다. 테스트된 프로필은 field-profile/example-small-language-models.md입니다.
  • 이번 라운드의 작업 폴더(여기서는 RUN/이라고 함).
  • 각자의 컨텍스트를 가진 서브 에이전트. 모델을 선택할 수 있는 경우 각 생성기에 다른 모델을 사용하세요. 다른 제공자의 도구나 API를 통해 생성기를 실행하고 그 출력을 같은 형식으로 저장할 수도 있습니다.

단계

  1. 생성기 선택. 최소 세 개의 생성 모델을 각 모드(일반 및 원거리)에서 사용하여 각 모델이 두 개의 생성기를 실행하도록 합니다: plain 및 distant. 테스트에서는 세 개의 Claude 모델(Opus 5.5, Fable 5.2, Sonnet 5.5)이 각 모드당 17개 질문을 작성했습니다.
  2. 원거리 분야 할당. 잘 정립된 발견이 있는 원거리 분야 목록을 선택하고(테스트됨: 인지 심리학, 심리언어학, 행동 경제학, 생태학), 각 원거리 생성기에 하나씩 중복 없이 할당합니다: python3 scripts/assign_fields.py SEED "field one;field two;..." NAME1 NAME2 NAME3. 시드와 출력을 기록합니다.
  3. 브리프 작성. python3 scripts/make_briefs.py FIELD-PROFILE.md RUN N NAME1:plain NAME1:distant:"FIELD" ...를 실행하여 RUN/briefs/에 생성기별로 하나의 브리프를 작성합니다(짧은 헤더, prompts/plain.md 또는 prompts/distant.md의 모드 프롬프트, 그 다음 prompts/constraints.md, 모두 프로필에서 채워짐) 및 출력 폴더를 생성합니다.
  4. 생성기 실행. 브리프당 하나의 새 서브 에이전트를 시작하고, 해당 브리프의 모델을 사용하여 자신의 브리프만 읽고 따르도록 지시합니다. 예제 질문이나 다른 생성기의 출력을 보여주지 마세요. 각 에이전트는 candidates.json을 작성합니다(원거리 모드에서는 transfers.md와 작업 목록도 작성되며, 기록용으로 보관되고 전달되지 않습니다).
  5. 형식 확인. python3 scripts/check_candidates.py N RUN/generation/*/*/candidates.json. 파일에 실패한 생성기가 있으면 한 번 수정을 요청하고 기록합니다.
  6. 풀링 및 근접 중복 찾기.
    • python3 scripts/merge.py RUN/pool SEED plain:NAME1=RUN/generation/plain/NAME1/candidates.json distant:NAME1=... ...는 질문 텍스트만 유지하고 섞습니다.
    • python3 scripts/candidate_pairs.py RUN/pool은 유사한 질문 쌍을 나열합니다. 테스트된 버전은 nomic-embed-text를 통해 로컬 Ollama 서버로 질문을 임베딩하고 코사인 유사도가 0.83 이상인 쌍, 질문당 최대 5개의 최근접 이웃을 유지합니다. Ollama 없이 --lexical을 추가하세요(테스트되지 않음: 단어 개수 유사성, 각 질문의 5개 최근접 이웃).
  7. 중복 판단. prompts/dedup_judge.md를 프로필에서 채웁니다(python3 scripts/fill_prompt.py FIELD-PROFILE.md prompts/dedup_judge.md > RUN/pool/dedup_judge.md). 약 150쌍 이상이면 분할하고(python3 scripts/split_pairs.py RUN/pool 150), 각 배치를 새 판사에게 줍니다(테스트됨: Sonnet 5.5, 152쌍씩 4개 배치). 각 판사는 채워진 프롬프트와 자신의 배치만 읽고 결정을 작성합니다; python3 scripts/join_decisions.py RUN/pool decisions_1.json ...로 결합한 다음, python3 scripts/apply_merges.py RUN/pool로 클러스터를 병합하고 to_rewrite.json을 작성합니다.
  8. 재작성. prompts/rewrite.md를 같은 방식으로 채우고, RUN/pool/to_rewrite.json과 함께 새 에이전트(테스트됨: Sonnet 5.5)에게 주어 RUN/pool/rewritten.json을 작성하게 하며, 다른 파일은 읽지 않습니다.
  9. 익명화. python3 scripts/anonymise.py RUN/pool SEED는 모든 ID가 재작성되었는지 확인하고, 50단어 이상인 질문을 나열하며, 다시 섞고, RUN/pool/pool.json(ID Q01, Q02, ... 및 텍스트) 및 RUN/pool/sources.json(각각이 어떤 생성기와 모드에서 왔는지)을 작성합니다. 비평가, 예측가, 파일럿 빌더 및 참신성 검사자에게는 pool.json만 보여줍니다.

시드: 고정된 정수로, 단계 실행 전에 선택되고 기록됩니다.

테스트 결과

테스트(분야: 작은 공개 언어 모델의 관찰 가능한 행동)에서 12개 생성기가 약 3분 만에 204개 질문을 작성했습니다. 병합 후 168개가 남았습니다(18%는 근접 중복; 명시된 신뢰도가 정답과 오답을 구분한다는 아이디어 등 여러 생성기에서 나타남). 파일럿이 효과를 발견하고 문헌 검사가 같은 방향의 이전 보고를 찾지 못한 질문의 비율은 다음과 같습니다:

모드새롭고 확인된 발견
일반 프롬프트50개 중 14개 (28%)
원거리 분야 전이51개 중 14개 (27%)
문제화(포함되지 않음)42개 중 6개 (14%)
최근 초록의 갭 매핑(포함되지 않음)36개 중 3개 (8%)

모드당 36~51개 질문으로 이러한 차이는 기술적입니다(동일 비율 검정, p = 0.054). 포함되지 않은 두 모드는 이 패키지 최상단의 NOT-RECOMMENDED.md에 문서화되어 있습니다.

파일

  • prompts/plain.md, prompts/distant.md: 생성 프롬프트. N은 질문 수로 대체됩니다; 다른 플레이스홀더는 분야 프로필에서 옵니다.
  • prompts/constraints.md: 모든 생성기가 받는 제약 사항.
  • prompts/dedup_judge.md, prompts/rewrite.md: 중복 판사 및 재작성기.
  • scripts/: fill_prompt.py, make_briefs.py, assign_fields.py, check_candidates.py, merge.py, candidate_pairs.py, split_pairs.py, join_decisions.py, apply_merges.py, anonymise.py. 표준 라이브러리만 사용.

관련 스킬