multica-platform-knowledge-base · git:20260910.7712a2c · 2026-09-10 · sha256 0f9ad78911f66246
multica-platform-knowledge-base git:20260910.7712a2cA
Immutable. This exact content is served forever at /api/v1/blob/0f9ad78911f66246.
---
name: multica-platform-knowledge-base
description: Remote Wiki knowledge-base Q&A (Knowledge Base Bridge). Platform skill, mounted on demand by tester/frontend/backend/architect; invoked by name from content skills.
metadata:
credentials:
optional:
- KB_BRIDGE
---
# Platform · Knowledge Base (remote Wiki)
## Purpose
Query the team Wiki knowledge base via the **Knowledge Base Bridge** HTTP API. Used by **@Tester / @FrontendDev / @BackendDev / @Architect** to look up entry paths, terminology, and historical context.
> Integrated from the internal knowledge-base squad; script `scripts/kb_ask.py` (stdlib only, cross-platform).
## Architecture
```text
Agent (local)
↓ kb_ask.py (HTTP)
Knowledge Base Bridge :3910
↓ Cursor SDK Agent + Skills
Team Wiki
/home/ubuntu/cursor-workspace/.cursor/skills/knowledge-base/wiki/
```
(The path lives on the knowledge-base service side; the local Agent only accesses it through the Bridge HTTP API.)
## Agent execution rules (mandatory)
| Step | Action | Forbidden |
| --- | --- | --- |
| 1 | `python scripts/kb_ask.py --health` | SSH fallback, hand-written curl |
| 2 | `python scripts/kb_ask.py "question" [system-code]` | Fabricating the source of a citation |
| 3 | Present the `answer` from stdout | Expanding historical rules into current acceptance criteria |
## Bridge identification rules
The script automatically satisfies the Wiki Q&A conditions (the Agent **must not** switch to another HTTP method to bypass it):
- `taskId >= 500000000` (default generated by script)
- prompt prefix `【Wiki 知识库问答】`
## When to use
- The local machine has no knowledge-base copy and you need to look up business Wikis such as CRM/MES/BOSS
- The user asks to query the team knowledge base remotely
- **T1 Step 0.5b**: retrieve entry paths / terminology / historical context by module keyword (acceptance still uses the current JIRA as source of truth)
## When not needed
- A complete local knowledge-base copy already exists and Read/Grep hits the needed content directly
- The question is unrelated to the current requirement, or only verifying Bridge connectivity (use `--health`)
## Usage
```bash
python scripts/kb_ask.py --health
python scripts/kb_ask.py "Where is the CRM case-management entry?"
python scripts/kb_ask.py "MES work-order status" MES
python scripts/kb_ask.py "question" --json
```
## Configuration
| Variable | Description |
| --- | --- |
| `KB_BRIDGE` | Bridge address, default in `config.yaml` |
| `KB_POLL_INTERVAL` | Poll interval seconds, default 2 |
| `KB_POLL_TIMEOUT` | Timeout seconds, default 600 |
## Timeout / unavailable stop rule (mandatory)
> Do not stall in "running" waiting for the knowledge base.
1. `--health` fails, or `kb_ask.py` times out/errors → mark "team knowledge base unavailable/timeout"
2. **End this round of waiting immediately**, explain the block and options (retry / skip KB / check Bridge)
3. The caller (e.g. T1 Step 0.5) may annotate and continue, but **must not** poll repeatedly until the user perceives a hang
4. Do not fabricate business rules or citation sources because of unavailability
## Troubleshooting
| Symptom | Handling |
| --- | --- |
| Cannot reach Bridge | VPN/intranet; `python scripts/kb_ask.py --health` |
| Timeout | Follow the stop rule above; only raise `KB_POLL_TIMEOUT` when the user explicitly asks |
| status=error | Add `--json` to inspect `error` |
## Relationship to the test flow
- **T1 functional cases** (`multica-test-t1-design`): before generation, Step 0.5 queries the KB for entry/terminology; **acceptance still uses current JIRA/PRD as source of truth**
- **Interface scenario supplement** (`multica-platform-apifox`): query historical auth/data-seeding for the same module
- **Frontend/backend implementation**: query module conventions, error codes, permission semantics
## Why it works
The knowledge base was extracted from a test-only squad into a platform skill, mounted by role on demand, avoiding hardcoding the Bridge address or SSH path in role prompts.