forage-solutions
정보
이 스킬은 개미 군집 최적화를 구현하여 여러 해결 경로를 병렬로 탐색합니다. 복잡한 문제를 디버깅하거나 단일 접근법이 명확히 최선이 아닐 때 이상적입니다. 가설을 정찰하고 유망한 전략을 강화하며, 비생산적인 전략은 지능적으로 포기하여 지역 최적점에 빠지는 것을 방지합니다. 초기 해결책이 실패했을 때, 근본 원인이 불분명할 때, 또는 이전 시도가 조기에 차선책으로 수렴했을 때 사용하세요.
빠른 설치
Claude Code
추천npx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/forage-solutionsClaude Code에서 이 명령을 복사하여 붙여넣어 스킬을 설치하세요
문서
ソリューションの探索
Explore a solution space using ant colony optimization principles — deploying independent hypotheses as scouts, reinforcing promising approaches through evidence, detecting diminishing returns, and knowing when to abandon a strategy and explore elsewhere.
使用タイミング
- Facing a problem with multiple plausible approaches and no clear winner
- When the first approach tried is not working but alternatives are unclear
- Debugging with no obvious root cause — multiple hypotheses need parallel investigation
- Searching a codebase for the source of a behavior when the location is unknown
- When previous solution attempts have converged prematurely on a suboptimal approach
- Complementing
build-coherencewhen the solution space must be explored before a decision is made
入力
- 必須: Problem description or goal (what are we foraging for?)
- 必須: Current state of knowledge (what is already known?)
- 任意: Previous approaches tried and their outcomes
- 任意: Constraints on exploration (time budget, tool availability)
- 任意: Urgency level (affects exploration-exploitation balance)
手順
ステップ1: Map the Solution Landscape
Before deploying scouts, characterize the shape of the solution space.
Solution Distribution Types:
┌────────────────────┬──────────────────────────────────────────────────┐
│ Type │ Characteristics and Strategy │
├────────────────────┼──────────────────────────────────────────────────┤
│ Concentrated │ One correct answer exists (bug fix, syntax │
│ (one right fix) │ error). Deploy many scouts quickly to locate │
│ │ it. Exploit immediately when found │
├────────────────────┼──────────────────────────────────────────────────┤
│ Distributed │ Multiple valid approaches (architecture choice, │
│ (many valid paths) │ implementation strategy). Scouts assess quality │
│ │ of each. Use `build-coherence` to choose │
├────────────────────┼──────────────────────────────────────────────────┤
│ Ephemeral │ Solutions depend on timing or sequence (race │
│ (time-sensitive) │ conditions, order-dependent bugs). Fast scouting │
│ │ with immediate exploitation. Cannot revisit │
├────────────────────┼──────────────────────────────────────────────────┤
│ Nested │ Solving the surface problem reveals a deeper one │
│ (layers of cause) │ (config issue masking an architecture problem). │
│ │ Scout at each layer before committing to depth │
└────────────────────┴──────────────────────────────────────────────────┘
Classify the current problem. The distribution type determines how many scouts to deploy and how quickly to switch from exploration to exploitation.
期待結果: A clear characterization of the solution landscape that informs scouting strategy. The classification should feel accurate to the problem, not forced.
失敗時: If the landscape is completely unknown, that itself is the classification — treat it as potentially distributed and deploy broad scouts. The first round of scouting will reveal the landscape character.
ステップ2: Deploy Scout Hypotheses
Generate independent hypotheses as scouts. Each scout probes the solution space in a different direction.
- Generate 3-5 independent hypotheses about the problem or its solution
- For each hypothesis, define one cheap test — a single file read, one grep, one specific check
- Rate initial promise based on available evidence (not gut feeling)
- Deploy scouts independently: do not let the assessment of hypothesis A influence the test of hypothesis B
Scout Deployment Template:
┌───────┬──────────────────────┬──────────────────────┬──────────┐
│ Scout │ Hypothesis │ Test (one action) │ Promise │
├───────┼──────────────────────┼──────────────────────┼──────────┤
│ 1 │ │ │ High/Med/│
│ 2 │ │ │ Low │
│ 3 │ │ │ │
│ 4 │ │ │ │
│ 5 │ │ │ │
└───────┴──────────────────────┴──────────────────────┴──────────┘
Key principle: scouts assess, they do not exploit. The goal is a quick signal on each hypothesis, not a deep investigation of the first one that looks promising.
期待結果: 3-5 independent hypotheses with cheap tests defined. No hypothesis has been deeply explored yet — this is a breadth-first pass.
失敗時: If fewer than 3 hypotheses can be generated, the problem is either very constrained (concentrated type — good, scout aggressively) or understanding is too shallow (read more context before hypothesizing). If hypotheses are not independent (they are all variations of the same idea), the exploration is too narrow — force at least one hypothesis that contradicts the others.
ステップ3: Trail Reinforcement — Follow the Evidence
After scout results return, reinforce promising trails and let weak ones decay.
- Review scout results: which hypotheses found supporting evidence?
- Strong evidence found → reinforce the trail: invest more investigation effort here
- No evidence found → let the trail decay: do not investigate further without new signals
- Contradicting evidence found → mark as inhibition signal: actively avoid this path
- Monitor for premature convergence: if all effort flows to the first trail reinforced, force one scout into unexplored territory
Trail Reinforcement Decision:
┌───────────────────────────┬──────────────────────────────────────┐
│ Scout Result │ Action │
├───────────────────────────┼──────────────────────────────────────┤
│ Strong supporting evidence│ REINFORCE — deepen investigation │
│ Weak supporting evidence │ HOLD — one more cheap test before │
│ │ committing │
│ No evidence │ DECAY — deprioritize, scout elsewhere│
│ Contradicting evidence │ INHIBIT — mark as dead end │
│ Ambiguous result │ REFINE — hypothesis was too vague, │
│ │ sharpen and re-scout │
└───────────────────────────┴──────────────────────────────────────┘
期待結果: A clear prioritization of trails based on evidence, not preference. The strongest trail gets the most attention, but at least one alternative stays alive.
失敗時: If all scouts return empty, the hypotheses were wrong — not the approach. Reframe the question: "What assumptions am I making that could be wrong?" Generate new hypotheses from a different angle. If all scouts return strong signals, the problem may be distributed (multiple valid answers) — switch to build-coherence for approach selection.
ステップ4: Marginal Value Theorem — Know When to Leave
Monitor the yield of the current approach. When the information gained per unit of effort drops below the average across all approaches, it is time to switch.
Marginal Value Assessment:
┌────────────────────────┬──────────────────────────────────────────┐
│ Signal │ Action │
├────────────────────────┼──────────────────────────────────────────┤
│ New information per │ CONTINUE — this trail is productive │
│ action is high │ │
├────────────────────────┼──────────────────────────────────────────┤
│ New information per │ PREPARE TO SWITCH — squeeze remaining │
│ action is declining │ value, begin scouting alternatives │
├────────────────────────┼──────────────────────────────────────────┤
│ Last 2-3 actions │ SWITCH — the trail is depleted. The cost │
│ yielded nothing new │ of staying exceeds the cost of switching │
├────────────────────────┼──────────────────────────────────────────┤
│ Information contradicts│ SWITCH IMMEDIATELY — not just depleted │
│ earlier findings │ but misleading. Cut losses │
└────────────────────────┴──────────────────────────────────────────┘
Important: factor in switching cost. Moving to a new hypothesis means loading new context, which has a cost. Do not switch for marginal gains — switch when the current trail is clearly depleted.
期待結果: A deliberate decision to continue or switch based on yield assessment, not habit or frustration. Switches are evidence-based, not impulse-driven.
失敗時: If switching happens too frequently (oscillation between hypotheses), the switching cost is being undervalued. Commit to the current trail for N more actions before reassessing. If switching never happens (stuck on one trail despite declining yield), set a hard cap: after N unproductive actions, switch regardless of sunk cost.
ステップ5: Adapt Strategy to Results
Based on the foraging results, select the appropriate next phase.
- Most scouts empty, one trail weak → the problem is likely misframed. Step back and reframe: what question should we be asking?
- One strong trail, others empty → concentrated problem. Exploit the strong trail with full attention
- Multiple competing trails → distributed problem. Apply
build-coherenceto select among them - Clear winner emerging → transition from exploration to exploitation. Reduce scouting budget to 10-20% (keep one scout active for alternatives), commit primary effort to the winning approach
- All trails exhausted → the solution may not exist in the current search space. Expand: different tools, different assumptions, ask the user
期待結果: A strategic decision about the next phase that follows logically from the foraging results. The decision should feel like a conclusion, not a guess.
失敗時: If no strategy feels right, the foraging has revealed genuine uncertainty — and that is a valid outcome. Communicate the uncertainty to the user: "I explored N approaches and found X. The most promising is Y because Z. Shall I pursue it, or do you have additional context?"
バリデーション
- Solution landscape was characterized before scouting began
- At least 3 independent hypotheses were generated and tested
- Scout tests were cheap (one action each) and independent
- Trail reinforcement was based on evidence, not preference
- Marginal value was assessed before committing to deep investigation
- The strategy adapted to results rather than following a fixed plan
よくある落とし穴
- Premature exploitation: Diving deep into the first hypothesis that shows any promise without scouting alternatives. This is the most common failure — the first good idea is often not the best idea
- Perpetual scouting: Generating hypotheses endlessly without ever committing to one. Set a budget: after N scouts, commit to the best trail regardless
- Non-independent hypotheses: "Maybe it's in file A" and "maybe it's in file B, which is imported by file A" are not independent — they share assumptions. Force genuine diversity of approach
- Ignoring inhibition signals: When evidence contradicts a hypothesis, let it go. Continuing to invest in a contradicted trail because of effort already spent is the foraging equivalent of sunk cost fallacy
- Scouting without recording: If scout results are not recorded, later scouts will repeat earlier work. Briefly note what each scout found before moving to the next
関連スキル
forage-resources— the multi-agent foraging model that this skill adapts to single-agent solution searchbuild-coherence— used when foraging reveals multiple valid approaches that need evaluationcoordinate-reasoning— manages the information flow between scout hypotheses and exploitation phasesawareness— monitors for premature convergence and tunnel vision during foraging
GitHub 저장소
연관 스킬
evaluating-llms-harness
테스팅이 Claude Skill은 MMLU, GSM8K를 포함한 60개 이상의 표준화된 학술 과제에서 LLM 성능을 벤치마크하기 위해 lm-evaluation-harness를 실행합니다. 개발자들이 모델 품질을 비교하고, 학습 진행 상황을 추적하거나 학술 결과를 보고할 수 있도록 설계되었습니다. 이 도구는 HuggingFace와 vLLM 모델을 포함한 다양한 백엔드를 지원합니다.
cloudflare-cron-triggers
테스팅이 스킬은 cron 표현식을 사용하여 Worker를 스케줄링하기 위한 Cloudflare Cron Triggers 구현에 관한 포괄적인 지식을 제공합니다. 주기적 작업, 유지보수 작업, 자동화된 워크플로우 설정 방법을 다루며, 잘못된 cron 표현식이나 시간대 문제 같은 일반적인 이슈들을 해결하는 방법을 포함합니다. 개발자들은 이를 통해 스케줄된 핸들러 구성, cron 트리거 테스트, Workflows 및 Green Compute와의 연동 작업을 수행할 수 있습니다.
webapp-testing
테스팅이 Claude Skill은 Python 스크립트를 통해 로컬 웹 애플리케이션을 테스트하기 위한 Playwright 기반 툴킷을 제공합니다. 프론트엔드 검증, UI 디버깅, 스크린샷 캡처, 로그 확인 기능을 지원하며 서버 라이프사이클을 관리합니다. 브라우저 자동화 작업에 사용하되 컨텍스트 오염을 방지하기 위해 소스 코드를 읽지 않고 스크립트를 직접 실행하세요.
finishing-a-development-branch
테스팅이 스킬은 테스트 통과를 확인한 후 체계적인 통합 옵션을 제시하여 개발자가 완성된 작업을 마무리하도록 돕습니다. 구현이 완료된 후 머지, PR 생성, 브랜치 정리와 같은 워크플로우를 안내합니다. 코드가 준비되고 테스트가 완료되었을 때 개발 프로세스를 체계적으로 마무리하기 위해 사용하세요.
