BLA
BLA는 오픈소스 Blue Defense MCP와 CLI로, 소프트웨어 자산을 자동 AI 리버스 엔지니어링으로부터 보호합니다
opentide는 사양 기반 탐지 개발로 온톨로지·분류 체계로 위협 정렬·유지·신속 배포 지원
Spec-driven development for agentic detection engineering: an ontology and a taxonomy that keep every detection threat-aligned, maintainable and fast to ship.
보안JavaScript · MDXGitHub @opentidehq온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기OpenTide website and documentation (opentide.org)
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Source for the opentide web presence — deployed on GitHub Pages at opentide.org.
Built with Next.js and Fumadocs, exported as a static site for GitHub Pages.
| Section | Source | Path |
|---|---|---|
| Landing page | This repo | / |
| Documentation | Synced at build time | /docs |
| Specifications | specifications repo | /docs/specifications |
| RFCs | specifications rfcs/ | /docs/specifications/rfcs |
| Usage, CLI, MCP, SDK | opentide docs/ | /docs/{usage,cli,mcp,sdk} |
| Blog | This repo content/blog/ | /blog/ |
Documentation prose is synced from the opentide and specifications repos via pnpm sync:content and committed under content/docs/ as .mdx so Fumadocs can compile JSX and private-repo CI can build without cross-repository access. content/docs/.sync-stamp.json records the vendor SHAs; pnpm check:docs fails if those gitlinks moved without a refresh. A GitHub Actions workflow (sync-docs.yml) does this on a schedule and on repository_dispatch, then deploys — you do not need to run sync by hand after a package release.
If you clone opentide repos as siblings:
opentide/
├── opentide/
├── specifications/
└── website/ ← you are here
pnpm install
OPENTIDE_DOCS_PATH=../opentide/docs SPECIFICATIONS_PATH=../specifications pnpm dev
git submodule update --init --recursive
pnpm install
pnpm dev
Environment overrides (first match wins):
| Variable | Default candidates |
|---|---|
OPENTIDE_DOCS_PATH | vendor/opentide/docs, ../opentide/docs |
SPECIFICATIONS_PATH | vendor/specifications, ../specifications |
| Command | Description |
|---|---|
pnpm dev | Sync docs + start dev server |
pnpm fetch:pypi | Snapshot the current PyPI version for local/dev first paint |
pnpm sync:content | Copy opentide + specifications docs into content/docs/ as .mdx |
pnpm check:docs | Fail if content/docs does not match the pinned vendor gitlinks |
pnpm test | Unit tests for sync, freshness, and GitHub source URLs |
pnpm verify:demos | Run the landing demo objects through opentide validate --strict, lint --strict and a dry-run deploy (needs pip install opentide) |
pnpm build | Snapshot PyPI + sync docs + static export to out/ |
pnpm lint | ESLint |
pnpm types:check | TypeScript + Fumadocs MDX types |
Add an MDX file under content/blog/:
---
title: Your post title
description: One sentence summary for listings and SEO.
author: Your Name
date: 2026-06-25
tags:
- detection-engineering
---
Your content here.
Open a pull request. Posts appear at /blog/<filename-without-extension>/.
development branch (Fumadocs-formatted docs under docs/).../specifications when the vendor submodule is empty.Pushes to main deploy to GitHub Pages via .github/workflows/deploy.yml. Custom domain is opentide.org (public/CNAME, siteUrl in lib/shared.ts, and the Pages custom-domain field). Apex DNS is four GitHub A records plus AAAA; www CNAMEs to opentidehq.github.io. Do not attach blog.opentide.org to this Pages site — forward it to /blog/ at the registrar.
The landing page reads the current opentide version from the PyPI JSON API in the browser. Publishing a wheel does not require a website rebuild for that number to update.
Docs, changelog pages, specs, and RFCs do need a rebuild. .github/workflows/sync-docs.yml handles that without a human. RFC pages are not a separate publish step: pnpm sync:content rebuilds /docs/specifications/rfcs/ from specifications/rfcs/ (including reserved numbers that only exist in the README) every time the specifications pin moves.
repository_dispatch / workflow_dispatch) bump vendor/opentide + vendor/specificationspnpm sync:content and commit content/docs/ (including .sync-stamp.json)<Tabs>main and dispatch GitHub Pages deployA new or updated RFC in the specifications repository shows up on the site on the next hourly run. An opentide release dispatch refreshes both pins immediately. Nothing in this repository has to be edited by hand.
To notify the site immediately after a PyPI publish (optional, from opentidehq/opentide):
gh api repos/opentidehq/website/dispatches -f event_type=opentide-released
That call needs a token with repo scope on this repository. If it is not wired, the hourly schedule still picks the change up.
Licensed under the European Union Public Licence v. 1.2 (EUPL-1.2).