skillwiki 0.10.68 → 0.10.69
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/skills/.claude-plugin/plugin.json +2 -2
- package/skills/.codex-plugin/plugin.json +3 -3
- package/skills/.mcp.json +11 -0
- package/skills/README.md +2 -1
- package/skills/cursor-cli-mcp.example.json +11 -0
- package/skills/mcp.json +11 -0
- package/skills/package.json +6 -1
- package/skills/scripts/check_readiness.py +86 -0
- package/skills/skills/skillwiki-mcp/SKILL.md +36 -0
- package/skills/skillwiki-mcp/SKILL.md +36 -0
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skillwiki",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.69",
|
|
4
4
|
"skills": "./",
|
|
5
|
-
"description": "Project-aware Karpathy-style knowledge base for Claude Code:
|
|
5
|
+
"description": "Project-aware Karpathy-style knowledge base for Claude Code: 21 prompt-only skills (wiki-*, proj-*, using-skillwiki, skillwiki-mcp) backed by the deterministic `skillwiki` CLI.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "karlorz",
|
|
8
8
|
"url": "https://github.com/karlorz"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skillwiki",
|
|
3
|
-
"version": "0.10.
|
|
4
|
-
"description": "Project-aware Karpathy-style knowledge base for Codex with
|
|
3
|
+
"version": "0.10.69",
|
|
4
|
+
"description": "Project-aware Karpathy-style knowledge base for Codex with 21 prompt-only skills backed by the deterministic skillwiki CLI.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "karlorz",
|
|
7
7
|
"url": "https://github.com/karlorz"
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"interface": {
|
|
23
23
|
"displayName": "SkillWiki",
|
|
24
24
|
"shortDescription": "Project-aware wiki skills for Codex agents",
|
|
25
|
-
"longDescription": "
|
|
25
|
+
"longDescription": "21 prompt-only skills (wiki-*, proj-*, using-skillwiki, skillwiki-mcp) for deterministic, project-aware knowledge workflows.",
|
|
26
26
|
"developerName": "karlorz",
|
|
27
27
|
"category": "Productivity",
|
|
28
28
|
"capabilities": [
|
package/skills/.mcp.json
ADDED
package/skills/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Prompt-only Markdown skills for Claude Code. Installed via `skillwiki install`
|
|
4
4
|
or the Claude/Codex/Antigravity plugin packaging paths.
|
|
5
5
|
|
|
6
|
-
Current package inventory: **
|
|
6
|
+
Current package inventory: **21 skills**.
|
|
7
7
|
|
|
8
8
|
Publication policy: new or updated typed-knowledge and meta pages must use
|
|
9
9
|
`skillwiki page publish` from a temporary draft, inspect its dry-run, and add
|
|
@@ -26,6 +26,7 @@ fixed papers/transcripts taxonomy.
|
|
|
26
26
|
| `wiki-*` | `wiki-init`, `wiki-ingest`, `wiki-query`, `wiki-lint`, `wiki-crystallize`, `wiki-audit`, `wiki-archive`, `wiki-reingest`, `wiki-adapter-prd`, `wiki-add-task`, `wiki-sync`, `wiki-canvas`, `wiki-gate-plan-mode` |
|
|
27
27
|
| `proj-*` | `proj-init`, `proj-work`, `proj-distill`, `proj-decide` |
|
|
28
28
|
| onboarding | `using-skillwiki` |
|
|
29
|
+
| mcp | `skillwiki-mcp` |
|
|
29
30
|
|
|
30
31
|
Verify the live inventory from source:
|
|
31
32
|
|
package/skills/mcp.json
ADDED
package/skills/package.json
CHANGED
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skillwiki/skills",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.69",
|
|
4
4
|
"private": true,
|
|
5
5
|
"files": [
|
|
6
6
|
"wiki-*",
|
|
7
7
|
"proj-*",
|
|
8
8
|
"using-skillwiki",
|
|
9
|
+
"skillwiki-mcp",
|
|
9
10
|
"skills",
|
|
10
11
|
"agents",
|
|
12
|
+
"scripts",
|
|
13
|
+
"mcp.json",
|
|
14
|
+
".mcp.json",
|
|
15
|
+
"cursor-cli-mcp.example.json",
|
|
11
16
|
".claude-plugin",
|
|
12
17
|
".codex-plugin",
|
|
13
18
|
"hooks",
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""SkillWiki HTTP MCP plugin readiness probe.
|
|
3
|
+
|
|
4
|
+
Interface: probe(environ) -> {status, reasons, url, migrated, warnings}.
|
|
5
|
+
Does not write ~/.cursor/mcp.json, config.toml, or mcp.env.
|
|
6
|
+
Never prints SKILLWIKI_MCP_TOKEN.
|
|
7
|
+
"""
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
import argparse
|
|
11
|
+
import json
|
|
12
|
+
import os
|
|
13
|
+
import sys
|
|
14
|
+
from typing import Mapping
|
|
15
|
+
|
|
16
|
+
PRODUCTION_MCP_URL = "https://wiki.karldigi.dev/mcp"
|
|
17
|
+
TOKEN_ENV = "SKILLWIKI_MCP_TOKEN"
|
|
18
|
+
URL_ENV = "SKILLWIKI_MCP_URL"
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def _strip(value: str | None) -> str:
|
|
22
|
+
return (value or "").strip()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def probe(environ: Mapping[str, str] | None = None) -> dict:
|
|
26
|
+
source = os.environ if environ is None else environ
|
|
27
|
+
token = _strip(source.get(TOKEN_ENV))
|
|
28
|
+
url = _strip(source.get(URL_ENV))
|
|
29
|
+
warnings: list[str] = []
|
|
30
|
+
reasons: list[str] = []
|
|
31
|
+
|
|
32
|
+
if not token:
|
|
33
|
+
return {
|
|
34
|
+
"status": "missing_prereq",
|
|
35
|
+
"reasons": [f"{TOKEN_ENV} unset"],
|
|
36
|
+
"url": url or None,
|
|
37
|
+
"migrated": False,
|
|
38
|
+
"warnings": warnings,
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
migrated = False
|
|
42
|
+
if not url:
|
|
43
|
+
url = PRODUCTION_MCP_URL
|
|
44
|
+
migrated = True
|
|
45
|
+
reasons.append(f"{URL_ENV} empty; using {PRODUCTION_MCP_URL}")
|
|
46
|
+
|
|
47
|
+
return {
|
|
48
|
+
"status": "in_sync",
|
|
49
|
+
"reasons": reasons,
|
|
50
|
+
"url": url,
|
|
51
|
+
"migrated": migrated,
|
|
52
|
+
"warnings": warnings,
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
def apply(environ: dict[str, str] | None = None) -> dict:
|
|
57
|
+
"""Apply the URL default to this process and Claude's env handoff only."""
|
|
58
|
+
target = os.environ if environ is None else environ
|
|
59
|
+
result = probe(target)
|
|
60
|
+
if result["status"] != "in_sync" or not result.get("migrated"):
|
|
61
|
+
return result
|
|
62
|
+
url = result["url"]
|
|
63
|
+
target[URL_ENV] = url
|
|
64
|
+
env_file = _strip(target.get("CLAUDE_ENV_FILE"))
|
|
65
|
+
if env_file:
|
|
66
|
+
with open(env_file, "a", encoding="utf-8") as handle:
|
|
67
|
+
handle.write(f"export {URL_ENV}={url}\n")
|
|
68
|
+
return result
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
def main(argv: list[str] | None = None) -> int:
|
|
72
|
+
parser = argparse.ArgumentParser(description="skillwiki HTTP MCP readiness probe")
|
|
73
|
+
parser.add_argument("--json", action="store_true", help="print JSON verdict")
|
|
74
|
+
parser.add_argument(
|
|
75
|
+
"--apply",
|
|
76
|
+
action="store_true",
|
|
77
|
+
help="set SKILLWIKI_MCP_URL in this child process and Claude's CLAUDE_ENV_FILE when TOKEN is set",
|
|
78
|
+
)
|
|
79
|
+
args = parser.parse_args(argv)
|
|
80
|
+
result = apply() if args.apply else probe()
|
|
81
|
+
print(json.dumps(result, separators=(",", ":")))
|
|
82
|
+
return 0 if result["status"] == "in_sync" else 2
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
if __name__ == "__main__":
|
|
86
|
+
sys.exit(main())
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: skillwiki-mcp
|
|
3
|
+
description: Use when capturing a note, idea, or bug into the wiki, appending log.md, or using wiki MCP tools. Writes via wiki_capture / wiki_log_append; never local raw/transcripts.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# SkillWiki HTTP MCP
|
|
7
|
+
|
|
8
|
+
Use this skill to capture a note, idea, bug, or task into the wiki, append `log.md`, or call SkillWiki HTTP MCP tools.
|
|
9
|
+
|
|
10
|
+
SkillWiki captures are HTTP MCP only (`type: http`). Claude/Grok use `SKILLWIKI_MCP_URL` as an optional override and otherwise default to `https://wiki.karldigi.dev/mcp`. Every host requires an operator-provided bearer as `SKILLWIKI_MCP_TOKEN` before MCP load. Do not start a local stdio `skillwiki mcp` / `skillwiki-mcp` server for captures.
|
|
11
|
+
|
|
12
|
+
## First-run readiness
|
|
13
|
+
|
|
14
|
+
- Resolve the installed plugin root from `GROK_PLUGIN_ROOT`, falling back to `CLAUDE_PLUGIN_ROOT`, and run `python3 "$PLUGIN_ROOT/scripts/check_readiness.py" --apply --json` before the first SkillWiki MCP call.
|
|
15
|
+
- `missing_prereq` means `SKILLWIKI_MCP_TOKEN` is absent from process environment; stop and ask for a bearer. Do not invent a stdio MCP.
|
|
16
|
+
- `in_sync` means the probe has a usable URL/token decision.
|
|
17
|
+
- A 401 is an MCP handshake failure, not a readiness-probe status. Report that the token is missing or rejected and stop.
|
|
18
|
+
- Grok SessionStart cannot inject the parent MCP environment. A restart cannot supply a missing token.
|
|
19
|
+
- Never auto-source `mcp.env` or auto-write `~/.cursor/mcp.json`, Grok `config.toml`, or `mcp.env`.
|
|
20
|
+
- Never print the bearer token.
|
|
21
|
+
|
|
22
|
+
## Writes (captures-only)
|
|
23
|
+
|
|
24
|
+
On leaf hosts, wiki captures go through MCP. Do **not** write `raw/transcripts/` or `log.md` as local files.
|
|
25
|
+
|
|
26
|
+
1. Call MCP `wiki_capture` with `kind` (`task` | `idea` | `bug` | `note`), `project`, `title`, and `content`. Optional `agent_note`.
|
|
27
|
+
2. Call MCP `wiki_log_append` when a structural `log.md` line is needed. Pass append-only `content`. Do not rewrite log history.
|
|
28
|
+
3. Write surface is captures-only. Do not call unpublished Tier 2 tools. Do not `git commit` / `wiki-push` against `~/wiki` for these captures.
|
|
29
|
+
|
|
30
|
+
## Reads
|
|
31
|
+
|
|
32
|
+
Local `~/wiki` (or `skillwiki path`) is fine for reads. MCP read tools are optional. Prefer ordinary file reads of the local mirror.
|
|
33
|
+
|
|
34
|
+
## Errors
|
|
35
|
+
|
|
36
|
+
Report handshake, capture, and append failures literally. If tools are missing after a 401 or `missing_prereq`, stop and tell the operator to export `SKILLWIKI_MCP_TOKEN`, run `grok plugin update skillwiki`, and start a new session. Do not fall back to local `raw/transcripts/` writes.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: skillwiki-mcp
|
|
3
|
+
description: Use when capturing a note, idea, or bug into the wiki, appending log.md, or using wiki MCP tools. Writes via wiki_capture / wiki_log_append; never local raw/transcripts.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# SkillWiki HTTP MCP
|
|
7
|
+
|
|
8
|
+
Use this skill to capture a note, idea, bug, or task into the wiki, append `log.md`, or call SkillWiki HTTP MCP tools.
|
|
9
|
+
|
|
10
|
+
SkillWiki captures are HTTP MCP only (`type: http`). Claude/Grok use `SKILLWIKI_MCP_URL` as an optional override and otherwise default to `https://wiki.karldigi.dev/mcp`. Every host requires an operator-provided bearer as `SKILLWIKI_MCP_TOKEN` before MCP load. Do not start a local stdio `skillwiki mcp` / `skillwiki-mcp` server for captures.
|
|
11
|
+
|
|
12
|
+
## First-run readiness
|
|
13
|
+
|
|
14
|
+
- Resolve the installed plugin root from `GROK_PLUGIN_ROOT`, falling back to `CLAUDE_PLUGIN_ROOT`, and run `python3 "$PLUGIN_ROOT/scripts/check_readiness.py" --apply --json` before the first SkillWiki MCP call.
|
|
15
|
+
- `missing_prereq` means `SKILLWIKI_MCP_TOKEN` is absent from process environment; stop and ask for a bearer. Do not invent a stdio MCP.
|
|
16
|
+
- `in_sync` means the probe has a usable URL/token decision.
|
|
17
|
+
- A 401 is an MCP handshake failure, not a readiness-probe status. Report that the token is missing or rejected and stop.
|
|
18
|
+
- Grok SessionStart cannot inject the parent MCP environment. A restart cannot supply a missing token.
|
|
19
|
+
- Never auto-source `mcp.env` or auto-write `~/.cursor/mcp.json`, Grok `config.toml`, or `mcp.env`.
|
|
20
|
+
- Never print the bearer token.
|
|
21
|
+
|
|
22
|
+
## Writes (captures-only)
|
|
23
|
+
|
|
24
|
+
On leaf hosts, wiki captures go through MCP. Do **not** write `raw/transcripts/` or `log.md` as local files.
|
|
25
|
+
|
|
26
|
+
1. Call MCP `wiki_capture` with `kind` (`task` | `idea` | `bug` | `note`), `project`, `title`, and `content`. Optional `agent_note`.
|
|
27
|
+
2. Call MCP `wiki_log_append` when a structural `log.md` line is needed. Pass append-only `content`. Do not rewrite log history.
|
|
28
|
+
3. Write surface is captures-only. Do not call unpublished Tier 2 tools. Do not `git commit` / `wiki-push` against `~/wiki` for these captures.
|
|
29
|
+
|
|
30
|
+
## Reads
|
|
31
|
+
|
|
32
|
+
Local `~/wiki` (or `skillwiki path`) is fine for reads. MCP read tools are optional. Prefer ordinary file reads of the local mirror.
|
|
33
|
+
|
|
34
|
+
## Errors
|
|
35
|
+
|
|
36
|
+
Report handshake, capture, and append failures literally. If tools are missing after a 401 or `missing_prereq`, stop and tell the operator to export `SKILLWIKI_MCP_TOKEN`, run `grok plugin update skillwiki`, and start a new session. Do not fall back to local `raw/transcripts/` writes.
|