openjutsu
영상에서 원클릭으로 인물 교체, ComfyUI·MiniMax H3 기반 오픈소스 로컬 힉스필드 겐주츠 대안, FLUX.3 Klein 재조명 지원
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기議会の審議内容をAIで要約・構造化し、スレッド形式で届けるオープンソース公共メディア / Open-source public media that restructures parliamentary proceedings with AI
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗open-gikai.net | 🇯🇵 日本語版はこちら / Japanese
OpenGIKAI (議会) is an open-source public media project that transforms Japanese parliamentary proceedings into a modern, accessible thread format — like social media, but with official sources. It ingests multiple sources including Diet records (NDL), Prime Minister press conferences (kantei.go.jp), and government council meeting minutes (審議会).
Parliamentary records are public but hard to read. OpenGIKAI makes them accessible without editorializing — every summary links back to the original transcript. The AI prompts and processing logic are fully open-source to ensure transparency and political neutrality.
| Layer | Technology |
|---|---|
| Frontend | Next.js 16 (App Router), TypeScript, Tailwind CSS |
| Deployment | Vercel — two projects from one repo: SSG frontend at the root, dynamic MCP server at apps/mcp/ |
| Data Pipeline | Python + Claude API (Message Batches API + prompt caching) |
| Data Sources | NDL Diet Records API, kantei.go.jp, cao.go.jp councils |
| Public API | Read-only MCP server for Claude Desktop / Cline / custom agents |
# Clone the repository
git clone https://github.com/wharfe/open-gikai.git
cd open-gikai
# Install frontend dependencies
npm install
# Start the frontend dev server
npm run dev
The MCP server is a separate Next.js project under apps/mcp/ with its own dependencies:
cd apps/mcp
npm install
npm run dev # serves on http://localhost:3100
See apps/mcp/README.md for MCP deployment details.
├── src/ # Frontend (Next.js SSG — output: "export")
│ ├── app/ # App Router pages
│ ├── components/ # React components
│ ├── lib/ # Utilities and data fetching
│ └── types/ # TypeScript type definitions
├── apps/
│ └── mcp/ # MCP server (separate Vercel project, dynamic Node runtime)
├── scripts/ # Python batch processing
│ ├── sources/ # Source adapters (NDL, kantei, council, …)
│ └── pipeline/ # AI pipeline (grouping, summarization, news ranker)
├── data/ # Generated JSON consumed by both frontend SSG and MCP server
│ ├── threads/ # Per-date thread files
│ └── members.json # Accumulated Diet member registry
├── public/ # Static assets (incl. sitemap, RSS feed)
└── .github/workflows/ # daily-batch.yml (6:00 AM JST cron)
The frontend uses output: "export", so anything requiring a Node runtime (Route Handlers, dynamic APIs) lives under apps/.
Sources (NDL, kantei, council)
├─► fetch (sliding 30-day window per run)
│
├─► group by topic ┐
├─► classify tension │ Claude API
├─► summarize at 3 levels (Batches) │ + prompt caching
├─► extract commitments / outcomes ┘
│
├─► enrich with related news (Bing News + Claude relevance ranker)
│
└─► generate JSON
├─► frontend SSG → open-gikai.net (Vercel)
└─► MCP server → /api/mcp (Vercel, apps/mcp)
scripts/pipeline/news_ranker.py) picks the most-relevant 3 articles from the candidate pool. Auxiliary information layer — see CLAUDE.md "Summary Layer Invariants" for the boundary.data/threads/*.json and data/members.json are consumed by the Next.js SSG to produce static HTML pages.apps/mcp (dynamic MCP server).(+N threads) in the message; the workflow emits a CI warning when 7+ consecutive runs add 0 threads (catches fetcher regressions that the green checkmark alone wouldn't). A hard job failure (e.g. NDL API 403 from a datacenter IP, Anthropic credit exhaustion) opens or updates a pipeline-failure GitHub Issue so it surfaces without polling gh run list.
input_hash) are persisted to a committed sidecar at data/pending-batches/{date}.json and resumed on the next run, which re-fetches raw, verifies the hash, and assembles without re-grouping. A batch stuck in-flight for >2 days opens/updates the same pipeline-failure Issue. When a resume cannot finish, the reason decides what happens next: a batch-side failure is resubmitted, a missing local file is simply held for a later run, and a failure that is deterministic given today's inputs (a changed hash, an exhausted retry budget) is held for a person — never resubmitted, never charged again. All of them red the run and none of them block the day's publish; only a date whose batch has aged past recovery is reported as a permanent loss.# 1. Fetch speeches across a sliding window (30 days catches retroactive NDL uploads)
python scripts/fetch_ndl.py --lookback-days 30
python scripts/fetch_kantei.py --lookback-days 30
python scripts/fetch_council.py --lookback-days 30 --council kisei
# (... repeat per council, see daily-batch.yml for the full list)
# 2. Summarize via Message Batches API (auto-resumes against existing data/threads/)
# Requires ANTHROPIC_API_KEY in .env.
python scripts/summarize.py --date 2026-04-22 --batch
# 3. Enrich with news, filtered through Claude relevance ranker
python scripts/enrich-news.py --date 2026-04-22 --rank-with-claude
# 4. Generate sitemaps, feeds, and validation; build the SSG
node scripts/validate-data.mjs --fix
node scripts/generate-feeds.js
node scripts/generate-sitemap.mjs
npm run build && npx serve out
See .env.example for configuration. The daily batch workflow at .github/workflows/daily-batch.yml runs all of these in sequence at 6:00 JST.
OpenGIKAI exposes its dataset as a read-only Model Context Protocol server so Claude Desktop, Cline, or any MCP-capable agent can query Diet discussions directly.
| Tool | Purpose |
|---|---|
search_threads | Find threads by keyword, date range, committee, or source |
get_thread | Fetch a full thread with 3-level summaries, original quotes, tension classifications, and outcomes |
get_member | Diet member profile |
list_members | Paginate members, filter by name/party |
list_dates | Index of dates with available threads |
The server lives in apps/mcp/ and is deployed as a second Vercel project from the same repository. OpenGIKAI does NOT pay for LLM inference — the MCP client (Claude Desktop, etc.) calls Claude with its own API key, and the server only returns JSON. See apps/mcp/README.md for the endpoint URL and Claude Desktop configuration snippet.
CLAUDE.md for the non-negotiable rules (stateless, deterministic, prompt-only) and the boundary between the summary layer and auxiliary layers (news enrichment, MCP server) where LLM/agent patterns are allowed.attribution block making this explicit for downstream agents.Diet records are sourced from the National Diet Library's Diet Records Search System. These records are not subject to copyright under Japan's Copyright Act, Article 13. Press conference transcripts are sourced from kantei.go.jp. Government council meeting minutes (審議会) are sourced from cao.go.jp and other ministry websites.
AI-generated summaries are clearly attributed as such. Related news articles are linked from Bing News RSS; only URLs, source names, publication dates, and OGP preview images are displayed — no article content is reproduced.
See CONTRIBUTING.md for guidelines.