OpenSource-Hub

hyperresearch

CLI 도구

jordan-gibbs/hyperresearch

Claude Code를 딥 리서치 에이전트로 전환하여 지속적이고 검색 가능한 지식 베이스를 구축합니다.

개요

Claude Code를 딥 리서치 에이전트로 전환: 계층적 적응형 16단계 파이프라인을 통해 수백 개의 소스를 수집하고, 적대적 리뷰가 인용을 문장 단위로 검증한 후 보고서를 생성합니다. 모든 소스는 영구적이고 검색 가능한 Markdown + SQLite 지식 베이스에 저장되어 이후 세션에서 바로 재사용할 수 있으며, 충돌 후 중단 지점에서 이어서 실행할 수 있습니다.

README 미리보기

\n\nThe Most Powerful Deep Research Harness\n\n\n  \n  \n  \n  \n\n\n---\n\n**Hyperresearch turns Claude Code into a deep research agent: one that currently leads the DeepResearch-Bench RACE leaderboard (benchmarked internally).** A tier-adaptive 16-step pipeline takes one prompt and produces an adversarially-audited report with full source provenance. Every source it reads lands in a persistent, searchable vault, so each session starts smarter than the last.\n\n\n  \n\n\nForward-looking projection from a stratified pilot against the DeepResearch-Bench leaderboard snapshot (https://huggingface.co/spaces/muset-ai/DeepResearch-Bench-Leaderboard). Third party validation is pending.\n\n## Why it wins\n\n- **250+ sources in a single run.** The `premier` scale profile targets 100–130 in the width sweep alone; citation chasing and gap-fill fetches more than double what actually lands in the corpus.\n- **Every citation is verified before the report ships.** A skeptical cite-checker audits whether each cited source actually supports its sentence. Hallucinated quotes and unacknowledged retractions are hard blocks at the gate.\n- **Syndication doesn't count as consensus.** An independence audit clusters derivative copies, so five reprints of one press release argue with the weight of one source.\n- **Adversarial by construction.** Four critics attack every draft in parallel, and a tool-locked patcher can only apply surgical edits. It physically cannot rewrite the report.\n- **Eight scholarly sources, one query.** `hpr scholar search` hits OpenAlex, Crossref, CORE, DOAB, ClinicalTrials.gov, SEC EDGAR and FRED through one client layer and returns a single list deduplicated by DOI and title. Books, trials and filings come back alongside papers, each tagged so the pipeline knows which is which. The humanities and social sciences are covered on purpose, not as an afterthought.\n- **Paywalled papers get read, not skimmed.** A closed paper normally enters a vault as a 1,500-character

FAQ (3)

문제 해결
`run init`이 `../../x` vault 태그를 허용하여 vault 외부에 스캐폴딩되는 path traversal 취약점을 수정하는 방법은 무엇인가요?

Vault.run_dir()와 init_run은 검증 없이 vault_tag를 research/runs/에 결합하므로, ../../x와 같은 태그나 절대 경로가 vault를 벗어날 수 있습니다. #114의 --tag 경로 순회 문제와 동일한 방식으로 수정하세요: 결합된 경로를 resolve하여 해당 경로가 research/runs/ 아래에 위치해야 하도록 하고, 그렇지 않으면 명확한 오류와 함께 태그를 거부합니다. 더 간단한 대안은 CLI 경계에서 태그를 슬러그 패턴 [A-Za-z0-9_.-]+로 제한하여 /와 .. 세그먼트를 완전히 차단하는 것입니다. 이 수정은 모든 run 서브커맨드가 동일한 방식으로 태그를 resolve하므로 모든 run 서브커맨드에 영향을 미친다는 점에 유의하세요.

원본 Issue #116
문제 해결
왜 hyperresearch quote-integrity lint가 잘못된 'hallucinated quote' 오류를 보고하고 blocked_on verify 상태로 run 완료를 차단하나요?

근본 원인 (hyperresearch v0.10.0): cli/lint.py (_check_quote_integrity)에서 스팬 정규식 _QUOTE_SPAN_RE = re.compile(r'["“]([^"“”]{20,600})["”]')이 20자 최소 길이를 강제합니다. 20자보다 짧은 실제 인용 구문(예: "TVL", "reasonable use")은 아예 매칭되지 않으며, 그 닫는 따옴표가 새로운 *여는* 따옴표로 잘못 해석되어 수백 자 뒤의 다음 따옴표 문자와 짝지어지면서 일반 산문을 포함하는 거대한 허위의 'hallucinated' 스팬이 생성됩니다. 수정 방법(도구 패치): 정규식을 하드 하한이 없는 비탐욕적(non-greedy) 매칭 — r'["“]([^"“”]{1,600}?)["”]' — 으로 교체하고, 필터링을 정규식 길이에 의존하는 대신 기존 if len(quote.split()) < 5: continue 검사가 짧은 스팬의 검증을 건너뛰도록 합니다. 우회 방법(리포트 측, 코드 변경 없음): 20자 미만의 모든 인용 스팬을 찾은 다음(" 표시를 순차적으로 짝지어 20자 미만 스팬을 표시하는 스크립트), 실제 짧은 전문 용어는 이탤릭체로 처리하거나("Low Security" 대신 *Low Security*) 연속된 소스 텍스트에서 인접한 짧은 인용문들을 하나의 긴 축자 인용문으로 병합하여(예: 다섯 개의 짧은 레이블 조각을 하나의 90자 이상 인용 스팬으로 결합) run finish가 통과할 때까지 진행합니다.

원본 Issue #120
문제 해결
hyperresearch 스킬 명령이 'run: command not found' 또는 '$HPR' not found 오류로 실패하는 이유는 무엇인가요?

hyperresearch 0.11.1에서는 .claude/skills/ 아래에 설치된 19개의 step 스킬 중 14개가 CLI를 $HPR로 호출하지만, HPR 변수는 환경에도, .claude/settings.json에도, 패키지 내 어디에도 정의되어 있지 않습니다. HPR이 설정되어 있지 않으면 $HPR이 빈 문자열로 확장되므로, $HPR run finish <vault_tag> --json 같은 명령이 run finish ...가 되고 셸은 run: command not found를 보고합니다(CLI 오류가 아닌 셸 오류입니다). 해결 방법: 1) 설치된 바이너리를 가리키도록 변수를 직접 export하세요: export HPR="$(command -v hyperresearch)"(셸 프로필이나 에이전트 환경에 추가). 2) 또는 설치된 스킬에서 $HPR을 확인된 절대 CLI 경로로 교체하세요. 이 경로는 설치 프로그램이 이미 CLAUDE.md(**CLI path: /path/to/hyperresearch**로 표시됨)와 모든 에이전트 프롬프트에 박아 넣은 것과 동일한 경로입니다. 예시: grep -rl '\$HPR' .claude/skills/ | xargs sed -i "s|\$HPR|/path/to/hyperresearch|g". 수정 전에는 bash -c 'unset HPR; $HPR run status -j'로(실패), 수정 후에는 /path/to/hyperresearch run status -j로(성공) 확인하세요.

원본 Issue #133