Native Shell
Native Shell:AI 生成的 UI,在你的應用中原生呈現,涵蓋每個平台。iOS、Android、macOS、Windows 與 Linux 上的應用、GPUI 應用與網頁在執行時載入已簽名、沙箱隔離的 TSX 模組並繪製 th
AI 翻譯
MCP servers, libraries and Skills that let an LLM read S1000D® technical documents and check and create them in line with BREX (business rules), plus an authoring tool and a viewer for experiential ma
翻譯準備中
開發工具TypeScript · JavaScriptGitHub @shuji-bonji上線中營運者未確認
試用過了嗎? 點一下就好,不需要登入。
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證s1000d-stack is a project that brings together the MCP servers, shared libraries and Skills that let an LLM read technical documents written in S1000D® correctly and check and create them according to the rules agreed for a project (business rules), together with an authoring tool and a viewer for manuals that teach through hands-on operation of sc
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗English | 日本語
s1000d-stack is a project that brings together the MCP servers, shared libraries and Skills that let an LLM read technical documents written in S1000D® correctly and check and create them according to the rules agreed for a project (business rules), together with an authoring tool and a viewer for manuals that teach through hands-on operation of screens and equipment.
This repository holds only the stack manifest (stack.json), the documentation site (site/) and the record of plans and decisions (docs/). Each component is an independent repository.
[!IMPORTANT] This is a personal project and is not affiliated with ASD (Aerospace, Security and Defence Industries Association of Europe). S1000D® is a registered trademark of ASD. The S1000D specification, XML schemas, default BREX and official samples are not included in any package or repository, because their terms of use do not grant redistribution. Obtain them from s1000d.org and point the
S1000D_SPEC_DIRenvironment variable at the extracted folder, or write{"specDir": "/absolute/path"}to the config file~/.config/s1000d-stack/config.json(for cases where environment variables do not reach the server, as when it is installed as a plugin in Claude Desktop).
Stage 1 (understanding and checking against BREX) and stage 2 (verification and reading as structure) are complete, and fix suggestions have been added as the first component of stage 2.5 (a foundation that CSDB products can build in). In stage 3, s1000d-writer-mcp has been added, which lets an LLM create data modules without writing XML. Parts manufacturers and technical publication companies can use an LLM to understand the BREX (Business Rules Exchange) handed over by a customer, to confirm that their own data modules follow the XML schema (XSD) and the BREX, to receive candidate corrections for the violations, and to read data modules as structure rather than as XML. They can also use an LLM, without letting it write XML, to create data modules from a structured draft such as an experiential manual, verify and repair them, and hand sentences out and back for translation.
The four Skills of stage 3 (experience-to-s1000d, s1000d-publish, s1000d-review and s1000d-translate) and a prototype of the authoring tool for experiential manuals (provisionally called manual-editor) have been created. A Skill is a procedure that tells Claude which MCP servers to call in which order and what to ask the user at each step. The authoring tool creates an experiential manual on screen and saves it as a JSON of experiential-manual-model.
[!NOTE] The four Skills are registered in claude-plugins (for example
/plugin install s1000d-review@shuji-bonji). The authoring tool is a prototype and has not been published yet.
| Component | Role |
|---|---|
| s1000d-core | Splits DMCs and ICNs, reads the identification and status section, reads and checks against BREX, validates against the XSD, resolves references, evaluates applicability, reads the content section, decides fix candidates, builds and numbers data modules, applies fix candidates, and decides where the distribution and the CSDB are (from environment variables or a config file). The shared library that every MCP depends on (npm: @shuji-bonji/s1000d-core) |
| s1000d-brex-mcp | An MCP server that lists BREX rules in a form people can read (explain_brex), looks up the meaning of SNS and attribute values (lookup_sns / lookup_value), returns the illustration formats that may be used (list_notations), and checks data modules against the BREX chain (check_against_brex) |
| s1000d-verify-mcp | An MCP server that validates one data module in the order well-formedness → XSD → BREX chain → references (verify_data_module), runs XSD validation only (validate_schema), resolves references (check_references), validates a whole folder (verify_csdb) and lists the XSDs it found (list_schemas). The results are returned combined into a single verification status (verification). It also returns candidate corrections for each finding (suggest_fixes); the server decides the candidates from the BREX rules, the XSD definitions and the CSDB |
| s1000d-reader-mcp | An MCP server that reads data modules and publication modules as structure (read_data_module / read_publication_module), lists a CSDB and resolves references (list_data_modules / resolve_reference), returns the applicability vocabulary (describe_applicability) and reads ICN metadata (read_icn_metadata). The server evaluates which product the content applies to, and every response carries the verification status |
The BREX check follows Chap 4.10.2 (BREX data module) and Chap 7.9 (Business rules processing) of S1000D Issue 7, and applies the brexDmRef chain (project → organisation → default BREX) to each layer separately. XSD validation uses the XSDs from the S1000D distribution you obtained. Judgement of agreements written as prose (nonContextRules) and judgement of conformance to S1000D are not included in any component.
flowchart TB
subgraph Hub["s1000d-stack (holds only the stack manifest and the site)"]
SITE["site/<br/>documentation site built with Astro Starlight"]
STACK["stack.json<br/>canonical source of the stack"]
DOCS["docs/<br/>ROADMAP, DECISIONS, notes"]
end
subgraph Lib["lib/"]
CORE["s1000d-core<br/>DMC, ICN, identification and status section, BREX check<br/>XSD, references, applicability, content<br/>building data modules"]
MODEL["experiential-manual-model<br/>common data model (independent of S1000D)"]
end
subgraph Mcp["mcp/"]
BREX["s1000d-brex-mcp"]
R["s1000d-reader-mcp"]
V["s1000d-verify-mcp"]
W["s1000d-writer-mcp"]
end
subgraph App["app/"]
ED["authoring tool (prototype)"]
VW["viewer (concept)"]
end
SK["skill/<br/>procedures for conversion, authoring, review and translation (4 Skills)"]
BREX --> CORE
R --> CORE
V --> CORE
W --> CORE
W --> MODEL
ED --> MODEL
VW --> MODEL
SK -.calls.-> Mcp
The expert agents (MCP and Skills) come first; the products (authoring tool and viewer) are built while using those agents as development tools. The mapping to S1000D is gathered into the common data model and its conversion functions, so that the agents and the products do not interpret it separately. The products stay usable without AI.
Versions are measured (
npm viewas of 2026-11-06).
| Repository | Layer | Form | Status | Version | npm |
|---|---|---|---|---|---|
| s1000d-core | core | library | released | 0.8.3 | @shuji-bonji/s1000d-core |
| s1000d-brex-mcp | mcp | mcp-server | released | 0.6.0 | @shuji-bonji/s1000d-brex-mcp |
| s1000d-verify-mcp | mcp | mcp-server | released | 0.7.0 | @shuji-bonji/s1000d-verify-mcp |
| s1000d-reader-mcp | mcp | mcp-server | released | 0.8.0 | @shuji-bonji/s1000d-reader-mcp |
| experiential-manual-model | model | library | released | 0.1.0 | @shuji-bonji/experiential-manual-model |
| s1000d-writer-mcp | mcp | mcp-server | released | 0.2.0 | @shuji-bonji/s1000d-writer-mcp |
| experience-to-s1000d-skill | procedure | skill | released | 0.1.1 | — |
| s1000d-publish-skill | procedure | skill | released | 0.1.2 | — |
scripts/generate-stack.mjs generates stack.json from measurements of npm and the local checkouts. The only part written by hand is the script's REGISTRY.
node scripts/generate-stack.mjs # generate (locally)
node scripts/generate-stack.mjs --readme # also replace the tables in README.md and README.ja.md
node scripts/generate-stack.mjs --check # CI: exit 1 if npm and stack.json disagree
s1000d-stack/
├── README.md English (README.ja.md is Japanese)
├── stack.json stack manifest (generated)
├── scripts/ generates and checks stack.json
├── site/ documentation site (Astro Starlight; English, Japanese under /ja/)
├── docs/
│ ├── ROADMAP.md goals, stages, work procedure, progress (Japanese)
│ ├── DECISIONS.md decisions (D-01–) and open items (U-01–) (Japanese)
│ └── notes/ research notes on IETM, S1000D, BREX, the distribution files and the specification (Japanese)
├── specs/ S1000D distribution files (not in git; placed by the user)
└── lib/ mcp/ skill/ app/ working copies of each repository (not in git)
lib/, mcp/, skill/ and app/ are places for working copies excluded by .gitignore; cloning does not fill them. The layout is the same as houki-hub and pdf-agent-stack.
site/ is a documentation site built with Astro Starlight, in English with a Japanese version under /ja/. It explains the relationship between IETM and S1000D, data modules and DMCs, how BREX works, and how to use this stack, in its own words rather than as a translation of the specification. An introduction to the concepts is in the Zenn Book IETM入門 — 概念から S1000D まで (in Japanese); the site is limited to explanations for users of this stack.
cd site
npm install
npm run dev
Code is MIT, the site's text is CC BY 4.0, and the sample data created for this project is MIT (docs/DECISIONS.md D-11).
| s1000d-writer-mcp | An MCP server that creates data modules without letting the LLM write XML. It builds the XML from a structured draft and verifies it (build_data_module), and automatically applies only the fixes that have exactly one candidate. It also converts experiential manuals (convert_manual), applies a fix chosen from the candidates (apply_fixes), creates comment data modules (create_comment), and takes out and puts back sentences for translation (extract_segments / apply_segments). It writes nothing by default |
Four Skills (skill/) | experience-to-s1000d (converts an experiential manual into a CSDB), s1000d-publish (creates data modules from drafts), s1000d-review (review and comment data modules) and s1000d-translate (translation). Procedures that tell Claude the order in which to call the MCP servers and what to ask the user at each step; they have no processing of their own. Published (0.1.0, claude-plugins) |
manual-editor (provisional name; app/manual-editor) | A prototype of a web app for creating experiential manuals on screen (SvelteKit and PWA). It reads and writes the JSON of manual-model, and offers validation and a hands-on preview. S1000D output is done by passing the JSON to the Skill experience-to-s1000d. It works without AI |
| experiential-manual-model | The common data model for experiential operation manuals (TypeScript types, JSON Schema, validation and a converter from the 2021 JSON). Independent of S1000D (npm: @shuji-bonji/experiential-manual-model) |
| s1000d-review-skill | procedure | skill | released | 0.1.1 | — |
| s1000d-translate-skill | procedure | skill | released | 0.1.1 | — |
| manual-editor | app | app | in development | 0.1.0 | — |
| manual-viewer | app | app | concept | — | — |