agentic-threat-hunting-framework 0.3.1__py3-none-any.whl → 0.4.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -16,7 +16,8 @@ tactics: {{ tactics }}
16
16
  techniques: {{ techniques }}
17
17
  data_sources: {{ data_sources }}
18
18
  related_hunts: []
19
- findings_count: 0
19
+ {% if spawned_from %}spawned_from: {{ spawned_from }}
20
+ {% endif %}findings_count: 0
20
21
  true_positives: 0
21
22
  false_positives: 0
22
23
  customer_deliverables: []
@@ -57,6 +58,8 @@ tags: {{ tags }}
57
58
 
58
59
  - **MITRE ATT&CK Techniques:** {{ ', '.join(techniques) if techniques else '[List relevant techniques]' }}
59
60
  - **CTI Sources & References:** [Links to reports, blogs, etc.]
61
+ {% if spawned_from %}- **Research Document:** See [{{ spawned_from }}](../research/{{ spawned_from }}.md) for detailed pre-hunt research
62
+ {% endif %}
60
63
 
61
64
  ### Related Tickets
62
65
 
@@ -172,6 +175,7 @@ def render_hunt_template(
172
175
  behavior: Optional[str] = None,
173
176
  location: Optional[str] = None,
174
177
  evidence: Optional[str] = None,
178
+ spawned_from: Optional[str] = None,
175
179
  ) -> str:
176
180
  """Render a hunt template with provided metadata.
177
181
 
@@ -189,6 +193,7 @@ def render_hunt_template(
189
193
  behavior: Behavior description (for ABLE)
190
194
  location: Location/scope (for ABLE)
191
195
  evidence: Evidence description (for ABLE)
196
+ spawned_from: Research document ID (e.g., R-0001) that this hunt is based on
192
197
 
193
198
  Returns:
194
199
  Rendered hunt markdown content
@@ -221,4 +226,5 @@ def render_hunt_template(
221
226
  behavior=behavior,
222
227
  location=location,
223
228
  evidence=evidence,
229
+ spawned_from=spawned_from,
224
230
  )
athf/core/web_search.py CHANGED
@@ -84,7 +84,7 @@ class TavilySearchClient:
84
84
  """Get or create Tavily client instance."""
85
85
  if self._client is None:
86
86
  try:
87
- from tavily import TavilyClient
87
+ from tavily import TavilyClient # type: ignore[import-not-found]
88
88
 
89
89
  self._client = TavilyClient(api_key=self.api_key)
90
90
  except ImportError:
@@ -25,6 +25,35 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
25
25
  ### Security
26
26
  - None
27
27
 
28
+ ## [0.4.0] - 2026-01-14
29
+
30
+ ### Added
31
+ - **Splunk Integration** - Native Splunk data source support
32
+ - `athf commands/splunk.py` - Splunk CLI command for query execution
33
+ - `athf/core/splunk_client.py` - Splunk REST API client
34
+ - Optional dependencies in pyproject.toml: `splunk = ["requests>=2.25.0"]`
35
+ - Integration quickstart guide at `integrations/quickstart/splunk.md`
36
+ - **Documentation Expansion** - Comprehensive CLI reference and user guides
37
+ - CLI_REFERENCE.md expanded by +530 lines with complete command documentation
38
+ - Enhanced getting-started.md with improved onboarding workflow
39
+ - Improved level4-agentic-workflows.md with agent orchestration patterns
40
+ - Enhanced maturity-model.md with +70 lines of maturity progression guidance
41
+ - **Workspace Structure** - Standard directory initialization
42
+ - docs/, hunts/, integrations/, knowledge/, prompts/, templates/ directories
43
+ - environment.md template for documenting data sources and tech stack
44
+
45
+ ### Changed
46
+ - **AGENTS.md** - Updated AI assistant instructions with Splunk integration context
47
+ - **CLI Enhancements** - Improved command structure and error handling
48
+ - **Template Engine** - Enhanced template rendering capabilities
49
+ - **Web Search** - Updated Tavily integration for research workflows
50
+
51
+ ### Removed
52
+ - **Testing Infrastructure** - Removed testing/ directory (8 files)
53
+ - Consolidated testing approach for cleaner repository structure
54
+ - Files removed: AGENTS.md, PRESENTATION_OUTLINE.md, README.md, TEST-SUMMARY.md, TESTING.md
55
+ - Scripts removed: test-fresh-install.sh, test-local.sh, test-quick.sh
56
+
28
57
  ## [0.3.1] - 2026-01-13
29
58
 
30
59
  ### Fixed
@@ -9,17 +9,24 @@ Complete reference for all `athf` command-line interface commands.
9
9
  | [`athf init`](#athf-init) | Setup | Initialize ATHF workspace directory structure |
10
10
  | [`athf env setup`](#athf-env) | Environment | Setup Python virtual environment with dependencies |
11
11
  | [`athf env info`](#athf-env) | Environment | Show virtual environment information |
12
+ | [`athf agent list`](#athf-agent-list) | Agent Framework | List all available agents |
13
+ | [`athf agent info`](#athf-agent-info) | Agent Framework | Show detailed agent information |
14
+ | [`athf agent run`](#athf-agent-run) | Agent Framework | Run individual agent |
15
+ | [`athf research new`](#athf-research-new) | Research | Create new research document with web search |
16
+ | [`athf research list`](#athf-research-list) | Research | List all research documents |
17
+ | [`athf research view`](#athf-research-view) | Research | View research document |
12
18
  | [`athf hunt new`](#athf-hunt-new) | Hunt Management | Create new hunt from template with auto-generated ID |
13
19
  | [`athf hunt list`](#athf-hunt-list) | Hunt Management | List all hunts with optional filtering |
14
20
  | [`athf hunt validate`](#athf-hunt-validate) | Hunt Management | Validate hunt file structure and metadata |
15
21
  | [`athf hunt stats`](#athf-hunt-stats) | Hunt Management | Display hunt statistics and success metrics |
16
22
  | [`athf hunt search`](#athf-hunt-search) | Hunt Management | Full-text search across all hunts |
17
23
  | [`athf hunt coverage`](#athf-hunt-coverage) | Hunt Management | Display MITRE ATT&CK coverage heatmap |
18
- | [`athf investigate new`](#athf-investigate-new) | Investigation Management | Create new investigation file for exploratory work |
19
- | [`athf investigate list`](#athf-investigate-list) | Investigation Management | List all investigations with optional filtering |
20
- | [`athf investigate search`](#athf-investigate-search) | Investigation Management | Full-text search across investigations |
21
- | [`athf investigate validate`](#athf-investigate-validate) | Investigation Management | Validate investigation file structure |
22
- | [`athf investigate promote`](#athf-investigate-promote) | Investigation Management | Promote investigation to formal hunt |
24
+ | [`athf hunt execute`](#athf-hunt-execute) | Hunt Management | Execute hunt workflow with agent orchestration |
25
+ | [`athf investigate new`](#athf-investigate-new) | Investigation | Create new investigation file for exploratory work |
26
+ | [`athf investigate list`](#athf-investigate-list) | Investigation | List all investigations with optional filtering |
27
+ | [`athf investigate search`](#athf-investigate-search) | Investigation | Full-text search across investigations |
28
+ | [`athf investigate validate`](#athf-investigate-validate) | Investigation | Validate investigation file structure |
29
+ | [`athf investigate promote`](#athf-investigate-promote) | Investigation | Promote investigation to formal hunt |
23
30
  | [`athf context`](#athf-context) | AI Optimization | Export AI-optimized context bundle (saves ~75% tokens) |
24
31
  | [`athf similar`](#athf-similar) | AI Optimization | Find similar hunts using semantic search |
25
32
 
@@ -29,6 +36,12 @@ Complete reference for all `athf` command-line interface commands.
29
36
  - [Global Options](#global-options)
30
37
  - [athf init](#athf-init)
31
38
  - [athf env](#athf-env)
39
+ - [athf agent list](#athf-agent-list)
40
+ - [athf agent info](#athf-agent-info)
41
+ - [athf agent run](#athf-agent-run)
42
+ - [athf research new](#athf-research-new)
43
+ - [athf research list](#athf-research-list)
44
+ - [athf research view](#athf-research-view)
32
45
  - [athf context](#athf-context)
33
46
  - [athf similar](#athf-similar)
34
47
  - [athf hunt new](#athf-hunt-new)
@@ -37,6 +50,7 @@ Complete reference for all `athf` command-line interface commands.
37
50
  - [athf hunt stats](#athf-hunt-stats)
38
51
  - [athf hunt search](#athf-hunt-search)
39
52
  - [athf hunt coverage](#athf-hunt-coverage)
53
+ - [athf hunt execute](#athf-hunt-execute)
40
54
  - [athf investigate new](#athf-investigate-new)
41
55
  - [athf investigate list](#athf-investigate-list)
42
56
  - [athf investigate search](#athf-investigate-search)
@@ -589,6 +603,7 @@ Creates a new hunt file with proper YAML frontmatter and LOCK structure. Automat
589
603
  | `--behavior` | String | Behavior description (for ABLE framework) |
590
604
  | `--location` | String | Location/scope description (for ABLE framework) |
591
605
  | `--evidence` | String | Evidence description (for ABLE framework) |
606
+ | `--research` | String | Research document ID (e.g., R-0001) to link to this hunt |
592
607
 
593
608
  \* Required in non-interactive mode
594
609
 
@@ -634,6 +649,22 @@ athf hunt new \
634
649
  --non-interactive
635
650
  ```
636
651
 
652
+ **Link to pre-hunt research document**:
653
+
654
+ ```bash
655
+ athf hunt new \
656
+ --research R-0001 \
657
+ --technique T1003.001 \
658
+ --title "LSASS Memory Dumping Hunt" \
659
+ --tactics credential-access \
660
+ --platforms windows \
661
+ --non-interactive
662
+ ```
663
+
664
+ This links the hunt to research document `R-0001` (created via `athf research new`). The hunt file will include:
665
+ - `spawned_from: R-0001` in YAML frontmatter
666
+ - Link to research document in the "Threat Intel & Research" section
667
+
637
668
  **AI-friendly one-liner with rich content** (full hypothesis + ABLE framework):
638
669
 
639
670
  ```bash
@@ -1130,16 +1161,29 @@ Displays a comprehensive visual coverage heatmap of all 14 MITRE ATT&CK tactics,
1130
1161
 
1131
1162
  | Option | Type | Default | Description |
1132
1163
  |--------|------|---------|-------------|
1164
+ | `--tactic` | String | - | Filter by specific tactic (or 'all' for all tactics) |
1133
1165
  | `--detailed` | Flag | False | Show detailed technique coverage with hunt references |
1134
1166
 
1135
1167
  ### Examples
1136
1168
 
1137
- **Show coverage heatmap:**
1169
+ **Show coverage for all tactics (default):**
1138
1170
 
1139
1171
  ```bash
1140
1172
  athf hunt coverage
1141
1173
  ```
1142
1174
 
1175
+ **Show all tactics explicitly:**
1176
+
1177
+ ```bash
1178
+ athf hunt coverage --tactic all
1179
+ ```
1180
+
1181
+ **Filter by specific tactic:**
1182
+
1183
+ ```bash
1184
+ athf hunt coverage --tactic credential-access
1185
+ ```
1186
+
1143
1187
  **Output:**
1144
1188
  ```
1145
1189
  MITRE ATT&CK Coverage
@@ -1163,14 +1207,25 @@ Impact ░░░░░░░░░░░░░░░░░░
1163
1207
  Overall: 10/221 techniques (5%)
1164
1208
  ```
1165
1209
 
1166
- **Show detailed technique breakdown:**
1210
+ **Show detailed technique breakdown (all tactics):**
1167
1211
 
1168
1212
  ```bash
1169
1213
  athf hunt coverage --detailed
1170
1214
  ```
1171
1215
 
1216
+ **Filter by tactic with detailed view:**
1217
+
1218
+ ```bash
1219
+ athf hunt coverage --tactic persistence --detailed
1220
+ ```
1221
+
1172
1222
  **Detailed Output:**
1173
1223
  ```
1224
+ MITRE ATT&CK Coverage - Persistence
1225
+ ────────────────────────────────────────────────────────────
1226
+
1227
+ Persistence 2 hunts, 7 techniques
1228
+
1174
1229
  🔍 Detailed Technique Coverage
1175
1230
 
1176
1231
  Persistence (2 hunts, 7 unique techniques)
@@ -1181,13 +1236,14 @@ Persistence (2 hunts, 7 unique techniques)
1181
1236
  • T1078.004 - H-0003
1182
1237
  • T1098 - H-0003
1183
1238
  • T1546.004 - H-0003
1184
-
1185
- Collection (1 hunts, 3 unique techniques)
1186
- • T1005 - H-0001
1187
- • T1059.002 - H-0001
1188
- • T1555.003 - H-0001
1189
1239
  ```
1190
1240
 
1241
+ **Valid tactic names:**
1242
+ - `reconnaissance`, `resource-development`, `initial-access`, `execution`
1243
+ - `persistence`, `privilege-escalation`, `defense-evasion`, `credential-access`
1244
+ - `discovery`, `lateral-movement`, `collection`, `command-and-control`
1245
+ - `exfiltration`, `impact`
1246
+
1191
1247
  ### Progress Bar Legend
1192
1248
 
1193
1249
  - `█` = Covered technique
@@ -1639,6 +1695,456 @@ Next steps:
1639
1695
 
1640
1696
  ---
1641
1697
 
1698
+ ## athf agent list
1699
+
1700
+ List all available agents in the ATHF framework.
1701
+
1702
+ ### Synopsis
1703
+
1704
+ ```bash
1705
+ athf agent list [OPTIONS]
1706
+ ```
1707
+
1708
+ ### Description
1709
+
1710
+ Displays all 8 agents (6 core + 2 LLM) available for threat hunting workflows. Shows agent names, types, and brief descriptions.
1711
+
1712
+ ### Options
1713
+
1714
+ | Option | Type | Default | Description |
1715
+ |--------|------|---------|-------------|
1716
+ | `--output` | Choice | table | Output format: `table`, `json`, `yaml` |
1717
+
1718
+ ### Examples
1719
+
1720
+ **List all agents:**
1721
+
1722
+ ```bash
1723
+ athf agent list
1724
+ ```
1725
+
1726
+ Output:
1727
+ ```
1728
+ Available Agents
1729
+
1730
+ Core Agents (6):
1731
+ • context-loader - Load hunt context and related files
1732
+ • query-validator - Validate SQL queries before execution
1733
+ • coverage-analyzer - Analyze MITRE ATT&CK coverage
1734
+ • metrics-aggregator - Aggregate hunt metrics and statistics
1735
+ • similarity-scorer - Find similar hunts using TF-IDF
1736
+ • investigation-promoter - Promote investigations to hunts
1737
+
1738
+ LLM Agents (2):
1739
+ • hypothesis-generator - Generate hunt hypotheses from threat intel
1740
+ • research-agent - Conduct pre-hunt research with web search
1741
+ ```
1742
+
1743
+ **JSON output:**
1744
+
1745
+ ```bash
1746
+ athf agent list --output json
1747
+ ```
1748
+
1749
+ ### Exit Codes
1750
+
1751
+ - `0`: Success
1752
+
1753
+ ---
1754
+
1755
+ ## athf agent info
1756
+
1757
+ Show detailed information about a specific agent.
1758
+
1759
+ ### Synopsis
1760
+
1761
+ ```bash
1762
+ athf agent info AGENT_NAME
1763
+ ```
1764
+
1765
+ ### Description
1766
+
1767
+ Displays detailed information about an agent including capabilities, input requirements, output format, and usage examples.
1768
+
1769
+ ### Arguments
1770
+
1771
+ | Argument | Type | Description |
1772
+ |----------|------|-------------|
1773
+ | `AGENT_NAME` | String | Agent name (e.g., hypothesis-generator, context-loader) |
1774
+
1775
+ ### Examples
1776
+
1777
+ **Show agent details:**
1778
+
1779
+ ```bash
1780
+ athf agent info hypothesis-generator
1781
+ ```
1782
+
1783
+ Output:
1784
+ ```
1785
+ Agent: hypothesis-generator
1786
+ Type: LLM Agent
1787
+ Description: Generate structured hunt hypotheses from threat intelligence
1788
+
1789
+ Capabilities:
1790
+ • Analyzes threat intel and TTPs
1791
+ • Generates ABLE framework scoping
1792
+ • Creates testable hypotheses
1793
+ • Suggests data sources and queries
1794
+
1795
+ Input Requirements:
1796
+ • --threat-intel (required): Threat intelligence or context
1797
+
1798
+ Output Format:
1799
+ • hypothesis: Testable hypothesis statement
1800
+ • actor: Threat actor description
1801
+ • behavior: Expected behavior patterns
1802
+ • location: Where to look (data sources)
1803
+ • evidence: What evidence to collect
1804
+
1805
+ Example Usage:
1806
+ athf agent run hypothesis-generator \
1807
+ --threat-intel "APT29 using WMI for persistence"
1808
+ ```
1809
+
1810
+ ### Exit Codes
1811
+
1812
+ - `0`: Success
1813
+ - `1`: Agent not found
1814
+
1815
+ ---
1816
+
1817
+ ## athf agent run
1818
+
1819
+ Run an individual agent with specified parameters.
1820
+
1821
+ ### Synopsis
1822
+
1823
+ ```bash
1824
+ athf agent run AGENT_NAME [OPTIONS]
1825
+ ```
1826
+
1827
+ ### Description
1828
+
1829
+ Executes a specific agent with provided inputs. Agents are autonomous components that perform specific tasks in the threat hunting workflow.
1830
+
1831
+ ### Arguments
1832
+
1833
+ | Argument | Type | Description |
1834
+ |----------|------|-------------|
1835
+ | `AGENT_NAME` | String | Agent to run (see `athf agent list`) |
1836
+
1837
+ ### Common Options
1838
+
1839
+ | Option | Type | Description |
1840
+ |--------|------|-------------|
1841
+ | `--output` | Choice | Output format: `json`, `yaml`, `text` (default: text) |
1842
+
1843
+ ### Agent-Specific Options
1844
+
1845
+ **hypothesis-generator:**
1846
+ - `--threat-intel` (required): Threat intelligence text
1847
+ - `--technique`: MITRE ATT&CK technique (optional)
1848
+
1849
+ **context-loader:**
1850
+ - `--hunt`: Hunt ID to load context for
1851
+ - `--tactic`: Filter by tactic
1852
+ - `--platform`: Filter by platform
1853
+
1854
+ **query-validator:**
1855
+ - `--sql`: SQL query to validate
1856
+ - `--target`: Target database (default: clickhouse)
1857
+
1858
+ **coverage-analyzer:**
1859
+ - `--tactic`: Analyze specific tactic coverage
1860
+
1861
+ **similarity-scorer:**
1862
+ - `--query`: Search query text
1863
+ - `--hunt`: Hunt ID to find similar hunts for
1864
+ - `--limit`: Max results (default: 10)
1865
+
1866
+ ### Examples
1867
+
1868
+ **Generate hypothesis:**
1869
+
1870
+ ```bash
1871
+ athf agent run hypothesis-generator \
1872
+ --threat-intel "APT29 using WMI for lateral movement and persistence" \
1873
+ --technique T1047
1874
+ ```
1875
+
1876
+ **Load hunt context:**
1877
+
1878
+ ```bash
1879
+ athf agent run context-loader \
1880
+ --hunt H-0013 \
1881
+ --output json
1882
+ ```
1883
+
1884
+ **Validate query:**
1885
+
1886
+ ```bash
1887
+ athf agent run query-validator \
1888
+ --sql "SELECT * FROM events WHERE time >= now() - INTERVAL 7 DAY LIMIT 100"
1889
+ ```
1890
+
1891
+ **Analyze coverage:**
1892
+
1893
+ ```bash
1894
+ athf agent run coverage-analyzer --tactic credential-access
1895
+ ```
1896
+
1897
+ **Find similar hunts:**
1898
+
1899
+ ```bash
1900
+ athf agent run similarity-scorer \
1901
+ --query "password spraying" \
1902
+ --limit 5
1903
+ ```
1904
+
1905
+ ### Exit Codes
1906
+
1907
+ - `0`: Success
1908
+ - `1`: Agent execution failed
1909
+ - `2`: Invalid arguments
1910
+
1911
+ ---
1912
+
1913
+ ## athf research new
1914
+
1915
+ Create new research document with web search and LLM analysis.
1916
+
1917
+ ### Synopsis
1918
+
1919
+ ```bash
1920
+ athf research new [OPTIONS]
1921
+ ```
1922
+
1923
+ ### Description
1924
+
1925
+ Conducts deep pre-hunt research using a 5-skill methodology: System Internals, Adversary Tradecraft, Telemetry Mapping, Historical Analysis, and Environmental Factors. Uses web search (Tavily API) and LLM analysis (AWS Bedrock) to generate comprehensive research documents.
1926
+
1927
+ **Research Depth:**
1928
+ - **Advanced** (default): 15-20 minutes, thorough 5-skill methodology
1929
+ - **Basic**: 5 minutes, rapid research for urgent hunts
1930
+
1931
+ ### Options
1932
+
1933
+ | Option | Type | Default | Description |
1934
+ |--------|------|---------|-------------|
1935
+ | `--topic` | String | Required | Research topic (e.g., "LSASS dumping", "Pass-the-Hash") |
1936
+ | `--technique` | String | - | MITRE ATT&CK technique (e.g., T1003.001) |
1937
+ | `--depth` | Choice | advanced | Research depth: `basic`, `advanced` |
1938
+ | `--output` | Choice | markdown | Output format: `markdown`, `json`, `yaml` |
1939
+
1940
+ ### Examples
1941
+
1942
+ **Deep research (default):**
1943
+
1944
+ ```bash
1945
+ athf research new --topic "LSASS dumping" --technique T1003.001
1946
+ ```
1947
+
1948
+ **Quick research for urgent hunts:**
1949
+
1950
+ ```bash
1951
+ athf research new --topic "Pass-the-Hash" --depth basic
1952
+ ```
1953
+
1954
+ **Research without technique mapping:**
1955
+
1956
+ ```bash
1957
+ athf research new --topic "Cloud IAM enumeration"
1958
+ ```
1959
+
1960
+ ### Output
1961
+
1962
+ ```
1963
+ 🔬 Starting research: LSASS dumping
1964
+
1965
+ Research ID: R-0003
1966
+
1967
+ ⏳ Conducting research (this may take 15-20 minutes)...
1968
+
1969
+ ✅ Research complete!
1970
+
1971
+ Created: research/R-0003.md
1972
+
1973
+ Next steps:
1974
+ 1. Review research/R-0003.md
1975
+ 2. Create hunt: athf hunt new --research R-0003
1976
+ 3. Link to hunt in frontmatter
1977
+ ```
1978
+
1979
+ ### Generated File Structure
1980
+
1981
+ ```yaml
1982
+ ---
1983
+ research_id: R-0003
1984
+ title: "LSASS Dumping Research"
1985
+ topic: "LSASS dumping"
1986
+ technique: T1003.001
1987
+ depth: advanced
1988
+ date: 2026-01-13
1989
+ status: completed
1990
+ ---
1991
+
1992
+ # R-0003: LSASS Dumping Research
1993
+
1994
+ ## Executive Summary
1995
+ ...
1996
+
1997
+ ## System Internals
1998
+ ...
1999
+
2000
+ ## Adversary Tradecraft
2001
+ ...
2002
+
2003
+ ## Telemetry Mapping
2004
+ ...
2005
+
2006
+ ## Historical Analysis
2007
+ ...
2008
+
2009
+ ## Environmental Factors
2010
+ ...
2011
+
2012
+ ## Recommendations
2013
+ ...
2014
+ ```
2015
+
2016
+ ### Requirements
2017
+
2018
+ **Optional but Recommended:**
2019
+ - `TAVILY_API_KEY`: Web search for adversary tradecraft (get from https://tavily.com)
2020
+ - `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_DEFAULT_REGION`: AWS Bedrock for LLM analysis
2021
+ - Without Bedrock: Falls back to template-based research
2022
+ - With Bedrock: Enhanced analysis using Claude Sonnet 4.5
2023
+
2024
+ ### Exit Codes
2025
+
2026
+ - `0`: Success
2027
+ - `1`: Research failed
2028
+ - `2`: Missing required options
2029
+
2030
+ ---
2031
+
2032
+ ## athf research list
2033
+
2034
+ List all research documents.
2035
+
2036
+ ### Synopsis
2037
+
2038
+ ```bash
2039
+ athf research list [OPTIONS]
2040
+ ```
2041
+
2042
+ ### Description
2043
+
2044
+ Displays all research documents with filtering options.
2045
+
2046
+ ### Options
2047
+
2048
+ | Option | Type | Default | Description |
2049
+ |--------|------|---------|-------------|
2050
+ | `--status` | Choice | - | Filter by status: `in-progress`, `completed` |
2051
+ | `--output` | Choice | table | Output format: `table`, `json`, `yaml` |
2052
+
2053
+ ### Examples
2054
+
2055
+ ```bash
2056
+ # List all research
2057
+ athf research list
2058
+
2059
+ # Filter by status
2060
+ athf research list --status completed
2061
+
2062
+ # JSON output
2063
+ athf research list --output json
2064
+ ```
2065
+
2066
+ ### Exit Codes
2067
+
2068
+ - `0`: Success
2069
+
2070
+ ---
2071
+
2072
+ ## athf research view
2073
+
2074
+ View research document content.
2075
+
2076
+ ### Synopsis
2077
+
2078
+ ```bash
2079
+ athf research view RESEARCH_ID
2080
+ ```
2081
+
2082
+ ### Description
2083
+
2084
+ Displays the full content of a research document.
2085
+
2086
+ ### Arguments
2087
+
2088
+ | Argument | Type | Description |
2089
+ |----------|------|-------------|
2090
+ | `RESEARCH_ID` | String | Research ID (e.g., R-0001) |
2091
+
2092
+ ### Examples
2093
+
2094
+ ```bash
2095
+ athf research view R-0001
2096
+ ```
2097
+
2098
+ ### Exit Codes
2099
+
2100
+ - `0`: Success
2101
+ - `1`: Research not found
2102
+
2103
+ ---
2104
+
2105
+ ## athf hunt execute
2106
+
2107
+ Execute hunt workflow with agent orchestration.
2108
+
2109
+ ### Synopsis
2110
+
2111
+ ```bash
2112
+ athf hunt execute HUNT_ID [OPTIONS]
2113
+ ```
2114
+
2115
+ ### Description
2116
+
2117
+ Orchestrates the complete LOCK pattern workflow using autonomous agents. Loads context, validates queries, executes hunt, and generates findings.
2118
+
2119
+ ### Arguments
2120
+
2121
+ | Argument | Type | Description |
2122
+ |----------|------|-------------|
2123
+ | `HUNT_ID` | String | Hunt to execute (e.g., H-0013) |
2124
+
2125
+ ### Options
2126
+
2127
+ | Option | Type | Default | Description |
2128
+ |--------|------|---------|-------------|
2129
+ | `--dry-run` | Flag | False | Simulate execution without running queries |
2130
+
2131
+ ### Examples
2132
+
2133
+ ```bash
2134
+ # Execute hunt with orchestration
2135
+ athf hunt execute H-0013
2136
+
2137
+ # Dry run to validate workflow
2138
+ athf hunt execute H-0013 --dry-run
2139
+ ```
2140
+
2141
+ ### Exit Codes
2142
+
2143
+ - `0`: Success
2144
+ - `1`: Execution failed
2145
+
2146
+ ---
2147
+
1642
2148
  ## Configuration
1643
2149
 
1644
2150
  ATHF uses `.athfconfig.yaml` for configuration: