Skip to content

Add the jiuwenswarm adapter (kb init pilot 2) - #246

Merged
tzhouam merged 2 commits into
mainfrom
kb/init-jiuwenswarm-adapter
Sep 30, 2026
Merged

tzhouam merged 2 commits into
mainfrom
kb/init-jiuwenswarm-adapter

Conversation

@tzhouam

@tzhouam tzhouam commented Sep 30, 2026

Copy link
Copy Markdown
Collaborator

What

Adds a new human-reviewed adapter, adapters/jiuwenswarm/manifest.yaml, for https://github.com/openJiuwen-ai/jiuwenswarm. This is kb init pilot 2 (design kb-init §12), the empty-KB path: no knowledge/repos/jiuwenswarm/ exists yet, and kb init jiuwenswarm will create it.

Upstream facts (checked 2026-09-30)

  • Public, default branch develop, Python (≥3.11). The PyPI project name is workswarm.
  • Packages: jiuwenswarm/ (~1.1k .py; channels/ also holds TS frontends) and the sandbox service jiuwenbox/src/jiuwenbox/.
  • Tests: pytest under tests/ (unit, integration, system, ui_e2e), plus some in-package jiuwenswarm/tests.
  • Docs: docs/zh (73 .md) and docs/en (68 .md) cover the same pages in two languages. Also README_CN.md, README.md, and TESTING.md (zh).
  • CI: no GitHub Actions workflows (.github/ is absent).

Manifest

The shape follows afd-plugin, with only the required sections:

  • repo: full_name, aliases, default_branch: develop, language: python, and path: ${JIUWENSWARM_REPO} (same env-var convention as afd).
  • knowledge.repo_subdir: repos/jiuwenswarm.
  • push.allowed: false.
  • knowledge_lifecycle: {enabled: false, mode: shadow, release.trigger: none, upstream_visibility: public}.
  • init:
    • doc_globs: the Chinese docs only (README_CN.md, TESTING.md, docs/zh/**/*.md, jiuwenbox/README_CN.md). The zh/en trees are the same set, so reading both would double the doc-corpus cost.
    • source_roots: [jiuwenswarm/, jiuwenbox/src/jiuwenbox/].
    • exclude: tests, resources, node_modules, __init__.py.
    • All other fields keep the defaults.

Seeds (general/ only, linked)

  • general/review/rules.md: repo-neutral design-review rules.
  • general/ci/guides/inspect-existing-tests-first.md: the repo has a large multi-level test tree, so reviews should start from existing tests.

No sibling repo KB transfers clearly: jiuwenswarm is an agent and messaging-channel app, not a vLLM-family repo.

Knowledge-less adapter: checked, nothing breaks

  • Direct routing returns None when a repo has no _routes.yaml.
  • The SDK's supported_repositories lists only repos that have an _index.md, so jiuwenswarm appears only after kb init.
  • AdapterRegistry, test_repo_neutral_core, and the SDK/MCP/routing tests all pass unchanged. The full suite is green.

Tests

  • test/test_kb_init_pilot_jiuwenswarm.py checks that the adapter loads, push is disabled, and the lifecycle is disabled/shadow/public. It also checks that the init block parses, all seeds are general/ and exist, and that repos/jiuwenswarm/ does not exist yet.
  • imc-check.sh returns rc=0 (full pytest, doc linters, SPEC freshness --strict, knowledge linters).
  • Commit gate: approved (20260930T103027.247143Z-3ea89bed1f-codeloop-i1-approve-2ooz_r6f.md).

Stacked on kb/init-integration (#239…#243); retarget to main after those merge.

🤖 Generated with Claude Code

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-30T10:38:52.699293Z b426b09 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

tzhouam and others added 2 commits September 30, 2026 23:31
A new human-reviewed adapter for openJiuwen-ai/jiuwenswarm. It is the
empty-KB pilot for kb init: no knowledge pages exist yet, and
`kb init jiuwenswarm` creates repos/jiuwenswarm/.

Upstream facts checked on 2026-09-30: the repo is public, its default
branch is develop, and it is written in Python. The package is
jiuwenswarm/, plus the jiuwenbox sandbox service in
jiuwenbox/src/jiuwenbox/. Tests live under tests/. Docs are in docs/zh
and docs/en, which hold the same set of pages. There are no GitHub
Actions workflows.

The manifest follows afd-plugin's shape, with only the required
sections:
- repo: full_name, aliases, develop as default branch, python.
- knowledge.repo_subdir: repos/jiuwenswarm.
- push: disabled.
- knowledge_lifecycle: enabled false, mode shadow, release trigger none,
  upstream_visibility public.
- init:
  - seeds: two general/ pages, linked.
  - doc_globs: the Chinese docs only, so the doc corpus is not
    paid for twice.
  - source_roots: both packages.
  - exclude: tests, resources, node_modules, __init__.

Adapters without knowledge pages are already handled. Direct routing
returns None when a repo has no _routes.yaml. The SDK lists only repos
that have an _index.md. The full suite passes unchanged.
test_kb_init_pilot_jiuwenswarm.py checks the adapter, the init block,
the seeds, and that repos/jiuwenswarm/ does not exist yet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
check_wiki_lint rejects any page tag that is not listed in
doc/knowledge/SCHEMA.md's 标签分类法 section, and kb init tags every page
it writes with the repo name. Until jiuwenswarm is listed there, every
kb init stage for this repo is blocked. Add it next to afd-plugin, and
test through the lint's own taxonomy() reader.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@tzhouam
tzhouam force-pushed the kb/init-jiuwenswarm-adapter branch from c82a9a6 to ab6fa24 Compare September 30, 2026 15:35
@tzhouam
tzhouam changed the base branch from kb/init-integration to main September 30, 2026 15:35
@tzhouam
tzhouam merged commit 498ec9f into main Sep 30, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant