A tool to analyze OpenSearch release notes and generate detailed feature/release reports.
graph TB
subgraph Input
RN[Release Notes]
PR[Pull Requests]
Issue[Issues]
Docs[Docs/Blogs]
end
subgraph "Kiro CLI + MCP"
Agent[Agents]
MCP[OpenSearch Docs MCP]
end
subgraph Output
FR[Feature Reports]
RR[Release Reports]
GH[GitHub Issues]
end
RN --> Agent
PR --> Agent
Issue --> Agent
Docs --> MCP --> Agent
Agent --> FR
Agent --> RR
Agent --> GH
| Agent | Description |
|---|---|
| group-release | Group raw items into feature groups → save to groups.json |
| review-groups | Review and refine groups (split over-aggregated, merge related) |
| review-release | Review release content |
| planner | Create GitHub Project and Issues from groups.json |
| create-issues | Create individual investigation Issues from tracking Issue |
| investigate | Deep investigation (4 modes: Issue, PR, Feature, Interactive Q&A) |
| summarize | Aggregate release reports into release summary |
| generate-release-docs | Generate release docs from existing feature documents |
| refactor | Batch structural changes to existing reports |
| translate | Translate reports to other languages |
| dev | Development and maintenance of this tool itself |
Note: fetch-release runs as a Python function directly (not as a Kiro agent).
- Python 3.8+
- Kiro CLI
- GitHub CLI (
gh) - authenticated viagh auth login - Node.js (for GitHub MCP Server)
Run gh auth login with required scopes:
gh auth login -s read:org,repo,workflow,project| Scope | Purpose |
|---|---|
repo |
Issue/PR operations |
project |
GitHub Projects (progress tracking) |
workflow |
GitHub Actions (MkDocs deployment) |
read:org |
Organization info |
gist |
(included by default) |
| Resource | Pattern | Example |
|---|---|---|
| GitHub Project | v{version} Investigation |
v3.0.0 Investigation |
| Issue (group) | [{category}] {group_name} |
[feature] Star Tree Index |
| Label (release) | release/v{version} |
release/v3.0.0 |
| Label (status) | status/{status} |
status/todo, status/done |
| Cache directory | .cache/releases/v{version}/ |
.cache/releases/v3.0.0/ |
| Data directory | data/releases/v{version}/ |
data/releases/v3.0.0/ |
| Release report | docs/releases/v{version}/features/{repo}/{item-name}.md |
docs/releases/v3.0.0/features/opensearch/star-tree-index.md |
| Feature report | docs/features/{repo}/{feature-name}.md |
docs/features/opensearch/star-tree-index.md |
git clone https://github.com/tkykenmt/opensearch-feature-explorer.git
cd opensearch-feature-explorer
pip install -r requirements.txt
# Authenticate GitHub CLI (required for GitHub MCP)
gh auth loginEnable the following in your repository settings (Settings → General):
- Pull Requests: Enable "Automatically delete head branches" to clean up feature branches after PR merge
- Pages (Settings → Pages): Set Source to "GitHub Actions" for automatic deployment
Complete workflow for investigating a new OpenSearch release.
flowchart TB
A[release-investigate] --> B[(Release Reports)]
A --> C[(Feature Reports)]
A --> D[(Release Summary)]
python run.py release-investigate 3.0.0Manual step-by-step execution
flowchart TB
A[fetch-release] --> B[(raw-items.json)]
python run.py fetch-release 3.0.0flowchart TB
A[(raw-items.json)] --> B[group-release]
B --> C[(groups.json)]
python run.py group-release 3.0.0 --allflowchart TB
A[(groups.json)] --> B[planner]
B --> C[(GitHub Project)]
B --> D[(Issues)]
python run.py planner 3.0.0flowchart TB
A[(Issue)] --> B[investigate]
B --> C[(Release Report)]
B --> D[(Feature Report)]
python run.py investigate --issue 124
# Or batch process all
python run.py batch-investigate --all
# Or batch process specific version
python run.py batch-investigate 3.0.0 --allflowchart TB
A[(Release Reports)] --> B[summarize]
B --> C[(Release Summary)]
python run.py summarize 3.0.0Quick investigation of a specific feature without full release workflow.
flowchart TB
A[PR Number] --> B[investigate]
C[Feature Name] --> B
B --> D[Feature Report]
# From a specific PR
python run.py investigate --pr 16233
# From feature name + PR
python run.py investigate --feature "Star Tree" --pr 16233
# Feature deep dive (searches all related PRs)
python run.py investigate --feature "Star Tree"Explore features interactively with Q&A.
flowchart TB
A[investigate] --> B[Q&A Session]
B --> C[Import URLs]
C --> B
python run.py investigate# Ignore existing tracking Issue and create new one
python run.py planner 3.0.0 -i
python run.py planner 3.0.0 --ignore-existingdocs/
├── features/ # Cumulative feature documentation
│ ├── index.md
│ ├── opensearch/
│ │ ├── star-tree-index.md
│ │ └── star-tree-index.ja.md
│ ├── neural-search/
│ │ └── semantic-highlighting.md
│ └── k-nn/
│ └── explain-api.md
└── releases/
└── v3.0.0/
├── index.md # Release index
├── summary.md # Release summary (from summarize)
└── features/
├── opensearch/
│ ├── star-tree-enhancements.md
│ └── grpc-transport.md
├── neural-search/
│ └── semantic-highlighting.md
└── k-nn/
└── explain-api.md
mkdocs serve
# Open http://localhost:8000See DEVELOPMENT.md for:
- Project structure and conventions
- Document templates and rules
- Agent system details
- Contributing guidelines
This project uses generative AI to create documentation. Generated content may contain inaccuracies. Always verify information against official OpenSearch documentation and source code.