skillwiki 0.10.70 → 0.10.71
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 +1 -1
- package/skills/.codex-plugin/plugin.json +1 -1
- package/skills/agents/wiki-add-task.md +37 -24
- package/skills/package.json +1 -1
- package/skills/skills/skillwiki-mcp/SKILL.md +2 -0
- package/skills/skills/using-skillwiki/SKILL.md +6 -4
- package/skills/skills/using-skillwiki/activation.md +3 -2
- package/skills/skills/wiki-add-task/SKILL.md +41 -14
- package/skills/skillwiki-mcp/SKILL.md +2 -0
- package/skills/using-skillwiki/SKILL.md +6 -4
- package/skills/using-skillwiki/activation.md +3 -2
- package/skills/wiki-add-task/SKILL.md +41 -14
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skillwiki",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.71",
|
|
4
4
|
"skills": "./",
|
|
5
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": {
|
|
@@ -6,7 +6,7 @@ color: green
|
|
|
6
6
|
tools: ["Read", "Write", "Bash", "Grep", "Glob"]
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
You are a quick-capture agent specializing in
|
|
9
|
+
You are a quick-capture agent specializing in recording ad-hoc captures destined for vault `raw/transcripts/`. On frozen-leaf hosts, capture goes through HTTP MCP `wiki_capture`; do not write local files or append local `log.md`. Local file writes and direct `log.md` appends are restricted to authoring hosts. You operate autonomously — the capture text and optional type/project are in your task prompt.
|
|
10
10
|
|
|
11
11
|
## When to invoke
|
|
12
12
|
|
|
@@ -16,48 +16,61 @@ You are a quick-capture agent specializing in writing ad-hoc captures to `raw/tr
|
|
|
16
16
|
|
|
17
17
|
**Your Core Responsibilities:**
|
|
18
18
|
1. Parse text, type, and optional project from the task prompt
|
|
19
|
-
2.
|
|
20
|
-
3.
|
|
21
|
-
4. Optionally cross-reference to a project
|
|
22
|
-
5. Append to log.md
|
|
19
|
+
2. On leaf/frozen hosts: call MCP `wiki_capture(kind, project, title, content)`; never write local captures or append local `log.md`
|
|
20
|
+
3. On authoring hosts (only when MCP is unavailable and host is authoring-capable): derive slug, write local capture file under `raw/transcripts/`, cross-reference, and append to log.md
|
|
23
21
|
|
|
24
22
|
**Execution Process:**
|
|
25
23
|
|
|
26
|
-
1. **Resolve
|
|
24
|
+
1. **Resolve host and environment.**
|
|
25
|
+
- Run `skillwiki path`. If NO_VAULT_CONFIGURED, report failure and STOP.
|
|
26
|
+
- Check if SkillWiki MCP namespace (`wiki_capture`) is available or if running on a leaf host.
|
|
27
|
+
- On a leaf host, capture MUST go through MCP `wiki_capture`. If MCP is missing, unauthenticated (401), or reports `missing_prereq`, STOP and report; never fall back to local `raw/transcripts/` or `log.md` writes.
|
|
28
|
+
- Local file writes are only permitted on authoring hosts when MCP is absent.
|
|
27
29
|
2. **Parse arguments.** From the task prompt:
|
|
28
30
|
- `text` — the idea/bug/task/note content (required)
|
|
29
31
|
- `type` — `idea`, `bug`, `task`, or `note` (default: `idea`)
|
|
30
32
|
- `project` — optional project slug
|
|
31
|
-
3. **Sensitive content guard.** Before
|
|
32
|
-
4. **
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
33
|
+
3. **Sensitive content guard.** Before capturing, scan the text for live credentials, access keys, tokens, passwords, cookies, bearer headers, or private keys. Redact before capturing. If the source text itself contains a live secret that must be preserved verbatim, STOP instead of filing it.
|
|
34
|
+
4. **Capture execution:**
|
|
35
|
+
- **MCP Mode (Leaf hosts / MCP available):**
|
|
36
|
+
- Map `type` → `kind` (`idea`, `bug`, `task`, `note`).
|
|
37
|
+
- Derive title from first ~6 words of `text`.
|
|
38
|
+
- Call MCP `wiki_capture(kind, project, title, content)`.
|
|
39
|
+
- Do not construct a local filename, do not write local frontmatter, and do not write local `log.md`.
|
|
40
|
+
- If a structural log entry is genuinely required, call MCP `wiki_log_append(content)`. Server owns structural log; do not dual-write.
|
|
41
|
+
- **Authoring-Host Fallback (Local writes — Authoring hosts only when MCP absent):**
|
|
42
|
+
- Derive slug from first ~6 words of text (lowercased, hyphens, non-alphanumeric stripped). File: `raw/transcripts/YYYY-MM-DD-{type}-{slug}.md`. If exists, add suffix.
|
|
43
|
+
- Write frontmatter:
|
|
44
|
+
```yaml
|
|
45
|
+
---
|
|
46
|
+
source_url:
|
|
47
|
+
ingested: YYYY-MM-DD
|
|
48
|
+
kind: {type}
|
|
49
|
+
project: "[[{slug}]]" # omit if no project
|
|
50
|
+
---
|
|
51
|
+
```
|
|
52
|
+
`sha256` may be omitted, but completed capture is immutable evidence.
|
|
53
|
+
- Write body: `# {type}: {text}` then the text content.
|
|
54
|
+
- Cross-reference (optional): If project slug provided and `projects/{slug}/` exists, append one-line reference to project compound notes.
|
|
55
|
+
- Log: Append to `{vault}/log.md`: `## [YYYY-MM-DD] capture | [type]: [text (first 60 chars)]`.
|
|
46
56
|
|
|
47
57
|
**Output Format:**
|
|
48
58
|
Return:
|
|
49
|
-
- Capture file path
|
|
50
|
-
- Type and slug
|
|
59
|
+
- Capture target / file path (or MCP capture response path)
|
|
60
|
+
- Type and title / slug
|
|
51
61
|
- Whether project cross-reference was added
|
|
52
62
|
- Suggested next step (e.g., "Use proj-work to track this task")
|
|
53
63
|
|
|
54
64
|
**Stop Conditions:**
|
|
55
65
|
- No text provided
|
|
56
|
-
-
|
|
66
|
+
- On leaf hosts: MCP namespace missing, unauthenticated (401), or reports `missing_prereq` (STOP and report; do not fall back to local writes)
|
|
67
|
+
- Target file already exists and slug can't be disambiguated (authoring host fallback)
|
|
57
68
|
- `skillwiki path` returns NO_VAULT_CONFIGURED
|
|
58
69
|
- Capture text contains unredacted live credentials or other authenticating secrets
|
|
59
70
|
|
|
60
71
|
**Forbidden:**
|
|
72
|
+
- On frozen-leaf hosts: writing local `raw/transcripts/` or `log.md`
|
|
73
|
+
- Inventing curl-to-MCP commands or printing bearer tokens
|
|
61
74
|
- Creating an `inbox/` directory
|
|
62
75
|
- Appending to existing capture files
|
|
63
76
|
- Editing or correcting an existing raw transcript; create a new capture or maintained work-item note
|
package/skills/package.json
CHANGED
|
@@ -7,6 +7,8 @@ description: Use when capturing a note, idea, or bug into the wiki, appending lo
|
|
|
7
7
|
|
|
8
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
9
|
|
|
10
|
+
When this MCP namespace is loaded and available, it wins over wiki-add-task local-write steps for capture intents.
|
|
11
|
+
|
|
10
12
|
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
13
|
|
|
12
14
|
## First-run readiness
|
|
@@ -87,7 +87,7 @@ sha256: # computed by skillwiki hash over body bytes after closing ---
|
|
|
87
87
|
```
|
|
88
88
|
**Layer 2 — Typed Knowledge:** `entities/`, `concepts/`, `comparisons/`, `queries/`, `meta/`. Agent-owned pages with `^[raw/...]` citation markers at paragraph-end. Global scope — project association via `provenance_projects:` frontmatter, not directory nesting.
|
|
89
89
|
**Layer 3 — Project Workspaces (`projects/{slug}/`):** Per-project lifecycle directories with `work/` (spec + plan + retro), `compound/` (distilled lessons/patterns), `architecture/` (ADRs), and `history/` (archived specs/plans).
|
|
90
|
-
**No `inbox/` directory.** Ad-hoc captures go to `raw/transcripts/` or directly into a project work item via `proj-work`. Do not invent new top-level directories — extend Layer 2 via SCHEMA.md tag taxonomy if needed.
|
|
90
|
+
**No `inbox/` directory.** Ad-hoc captures go to `raw/transcripts/` (destination stays `raw/transcripts/` in the vault; on leaf hosts the writer is the HTTP MCP server, not a local file create) or directly into a project work item via `proj-work`. Do not invent new top-level directories — extend Layer 2 via SCHEMA.md tag taxonomy if needed.
|
|
91
91
|
|
|
92
92
|
## Sensitive Content Policy
|
|
93
93
|
Vault content must not contain live credentials, access keys, tokens, passwords, cookies, bearer headers, private keys, or other authenticating secrets. This includes development-only and local-only credentials. Redact values before filing using `[REDACTED:<kind>]` or `[REDACTED:<kind>:<fingerprint>]`. If a source contains live secrets, stop and ask for a redacted source or explicit rotation/remediation direction; do not preserve the secret in `raw/`.
|
|
@@ -161,8 +161,9 @@ The vault is shared across hosts, so host-local absolute paths are not durable s
|
|
|
161
161
|
### Ad-hoc capture: three entry points
|
|
162
162
|
| Entry | When | What happens |
|
|
163
163
|
|-------|------|-------------|
|
|
164
|
-
|
|
|
165
|
-
|
|
|
164
|
+
| `wiki_capture` | You're on a frozen-leaf host with HTTP MCP | Calls MCP `wiki_capture(kind, project, title, content)`; server writes `raw/transcripts/` remotely |
|
|
165
|
+
| `/wiki-add-task <text>` | You're in an interactive session on an authoring host | Creates `raw/transcripts/YYYY-MM-DD-{type}-{slug}.md` with ad-hoc capture frontmatter |
|
|
166
|
+
| Filesystem drop | You're NOT in a Claude session (Obsidian, editor, sync) on an authoring host | Create a new `.md` file in `raw/transcripts/` — dev-loop discovers it on next cycle; do not edit it after capture |
|
|
166
167
|
| Dev-loop discovery | Automatic, next cycle | Scans `raw/transcripts/` for new files since last cycle, surfaces as claimable work |
|
|
167
168
|
|
|
168
169
|
## Skill Map
|
|
@@ -177,7 +178,8 @@ The vault is shared across hosts, so host-local absolute paths are not durable s
|
|
|
177
178
|
| `wiki-archive` | Archive typed pages, or attended preserve-move exact raw sources under `raw/archived/` |
|
|
178
179
|
| `wiki-remove` | Remove maintained pages; exact raw disposal uses the separate attended `sources dispose` flow |
|
|
179
180
|
| `wiki-reingest` | Detect drift in raw sources (sha256 comparison) and re-ingest updated content |
|
|
180
|
-
| `wiki-add-task` | Quick-capture ideas, bugs, tasks, notes
|
|
181
|
+
| `wiki-add-task` | Quick-capture ideas, bugs, tasks, notes (captures via wiki_capture on leaf hosts; local raw/transcripts/ only on authoring hosts) |
|
|
182
|
+
| `skillwiki-mcp` | HTTP MCP captures (`wiki_capture` / `wiki_log_append`); never local raw/transcripts on leaf hosts |
|
|
181
183
|
| `wiki-adapter-prd` | Map foreign PRD formats (CodeStable, RFC, AIDE, Hermes) into vault pages |
|
|
182
184
|
| `proj-init` | Bootstrap a project workspace (README, requirements, architecture) |
|
|
183
185
|
| `proj-work` | Open or run a work item under a project's work/ directory |
|
|
@@ -24,7 +24,8 @@ Invoke a SkillWiki skill when the user: wants vault/wiki/knowledge-base operatio
|
|
|
24
24
|
| `wiki-archive` | Archive typed pages or preserve-move raw sources |
|
|
25
25
|
| `wiki-remove` | Hard-delete vault paths without snapshot resurrection |
|
|
26
26
|
| `wiki-reingest` | Detect source drift and re-ingest updated content |
|
|
27
|
-
| `wiki-add-task` | Quick-capture ideas, bugs, tasks, notes |
|
|
27
|
+
| `wiki-add-task` | Quick-capture ideas, bugs, tasks, notes (HTTP MCP on leaf hosts; local files on authoring hosts) |
|
|
28
|
+
| `skillwiki-mcp` | HTTP MCP captures (`wiki_capture`, `wiki_log_append`); never local writes on leaf hosts |
|
|
28
29
|
| `wiki-adapter-prd` | Map foreign PRD formats (CodeStable, RFC, AIDE, Hermes) |
|
|
29
30
|
| `wiki-sync` | Safely sync vault git repository |
|
|
30
31
|
| `wiki-canvas` | Generate Obsidian Canvas visualization |
|
|
@@ -54,7 +55,7 @@ separate concerns.
|
|
|
54
55
|
|
|
55
56
|
## Fail-Closed Boundary
|
|
56
57
|
|
|
57
|
-
Never write typed pages, `index.md`, or `log.md` directly. Never bare `rm` or `git rm` as a fleet delete (snapshot resurrects from S3). Never auto `npm install -g skillwiki` in headless/goal/satellite sessions. If `skillwiki page publish --help` is unavailable, fail closed.
|
|
58
|
+
Never write typed pages, `index.md`, or `log.md` directly. On leaf hosts, captures use HTTP MCP (`wiki_capture`), never local `raw/transcripts` or `log.md` writes. Never bare `rm` or `git rm` as a fleet delete (snapshot resurrects from S3). Never auto `npm install -g skillwiki` in headless/goal/satellite sessions. If `skillwiki page publish --help` is unavailable, fail closed.
|
|
58
59
|
|
|
59
60
|
## Sensitive Content
|
|
60
61
|
|
|
@@ -1,33 +1,58 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: wiki-add-task
|
|
3
|
-
description: Capture ad-hoc ideas, bugs, tasks, or notes into the vault
|
|
3
|
+
description: Capture ad-hoc ideas, bugs, tasks, or notes into the vault (HTTP MCP wiki_capture on leaf hosts; local raw/transcripts/ on authoring hosts).
|
|
4
4
|
---
|
|
5
5
|
# wiki-add-task
|
|
6
|
-
Capture ad-hoc ideas, bugs, tasks, and notes into the vault.
|
|
6
|
+
Capture ad-hoc ideas, bugs, tasks, and notes into the vault. Destination of captures remains vault `raw/transcripts/`. Entry points depend on host role and environment:
|
|
7
7
|
| Entry | When | What happens |
|
|
8
8
|
|-------|------|-------------|
|
|
9
|
-
|
|
|
10
|
-
|
|
|
11
|
-
| Filesystem drop |
|
|
12
|
-
|
|
|
13
|
-
|
|
9
|
+
| MCP `wiki_capture` | SkillWiki MCP namespace is loaded and ready | Maps to `wiki_capture(kind, project, title, content)`; server writes `raw/transcripts/` remotely |
|
|
10
|
+
| `/wiki-add-task <text>` | Interactive session on an authoring host (MCP absent) | Creates `raw/transcripts/YYYY-MM-DD-{type}-{slug}.md` with ad-hoc capture frontmatter |
|
|
11
|
+
| Filesystem drop | Hermes Agent compact mode on an authoring host | Fallback — create `.md` in `raw/transcripts/`, dev-loop discovers it |
|
|
12
|
+
| Filesystem drop | Not in a Claude session (Obsidian, editor, sync) on an authoring host | Fallback — create a new `.md` file in `raw/transcripts/` using vault template; dev-loop discovers it on next cycle |
|
|
13
|
+
| Dev-loop discovery | Automatic, next cycle (authoring-host / leftover-transition only) | Scans `raw/transcripts/` for new files since last cycle, surfaces as claimable work |
|
|
14
|
+
**Path Rule:** Destination of captures is vault `raw/transcripts/` (Layer 1). Frozen-leaf hosts capture via MCP `wiki_capture` (server writes `raw/transcripts/` remotely); local file writes only occur on authoring hosts. Never capture under `projects/{slug}/raw/` — that violates SCHEMA.md Layer 1 immutability. Text captures stay in `raw/transcripts/`. If the capture includes images or other binaries, store those files under `raw/assets/` with a sibling Markdown note that embeds them; never use a .txt sidecar (such as `README.txt`) as the only index; Obsidian opens Markdown notes.
|
|
14
15
|
### Exception: Explicit project task requests
|
|
15
16
|
When the user explicitly says "raise task to project X", "add a task for X", "create a feature request for X", or uses a directive structure like "raise task to {project} {description}", the intent is a **work item**, not a capture:
|
|
16
17
|
| User wording | Action | Target |
|
|
17
18
|
|---|---|---|
|
|
18
|
-
| "capture this", "note this", "remember this" |
|
|
19
|
+
| "capture this", "note this", "remember this" | Leaf: MCP `wiki_capture`; Authoring: wiki-add-task | `raw/transcripts/` (leaf writes via `wiki_capture`, authoring writes local file) |
|
|
19
20
|
| "raise task to project X", "add task to X project" | Escalate to `proj-work` | `projects/{slug}/work/YYYY-MM-DD-{slug}/task.md` |
|
|
20
21
|
| "save to wiki" + content | Use `wiki-ingest` | `concepts/`, `entities/`, etc. |
|
|
21
|
-
This is NOT a violation of the
|
|
22
|
+
This is NOT a violation of the rule below — explicit project task requests are a distinct user intent that bypasses raw capture and goes directly to a Layer 3 work item.
|
|
22
23
|
## When This Skill Activates
|
|
23
24
|
- User invokes `/wiki-add-task` with a description.
|
|
24
25
|
- User says "add task", "capture this", "note this", "remember this", "log this idea", or similar.
|
|
25
26
|
- User provides a short text description and optionally a type tag.
|
|
27
|
+
- **Precedence:** If SkillWiki MCP tools are available (`wiki_capture`), **skillwiki-mcp / wiki_capture wins**. Do not race to local writes. The local-write path in wiki-add-task is only when MCP is absent AND the host is an authoring host (not a frozen leaf).
|
|
26
28
|
- **Do NOT activate** when the user says "raise task to project X" or "add work item to project X" — escalate to `proj-work` instead.
|
|
27
29
|
## Output language
|
|
28
30
|
Run `skillwiki lang` at the start. Entry prose and `--human` summaries use the resolved language. Frontmatter keys, file names, and structural markers stay English.
|
|
29
31
|
## Steps
|
|
30
|
-
0. **Resolve
|
|
32
|
+
0. **Resolve environment and host role.** Run `skillwiki path` (fail if NO_VAULT_CONFIGURED) and `skillwiki lang`. Check if SkillWiki MCP namespace (`wiki_capture`) is available or if running on a leaf host.
|
|
33
|
+
- **On frozen-leaf hosts:** Captures MUST go through MCP `wiki_capture`. If MCP is missing or returns 401, STOP and report (see Stop conditions); never fall back to local file writes.
|
|
34
|
+
- **Precedence:** If SkillWiki MCP namespace is loaded and ready, execute via **MCP Mode (Step A)**.
|
|
35
|
+
- **Authoring host local write:** Only when MCP is absent AND running on an authoring host, execute via **Local Write Mode (Step B)**.
|
|
36
|
+
|
|
37
|
+
### Step A: MCP Mode (Leaf hosts / MCP available)
|
|
38
|
+
1. **Parse arguments.** Extract from the user's message:
|
|
39
|
+
- `text` — the idea/bug/task/note content (required)
|
|
40
|
+
- `kind` — map user type (`idea`, `bug`, `task`, `note`) to `kind` (default: `idea`)
|
|
41
|
+
- `project` — optional project slug to cross-reference (e.g., `llm-wiki`)
|
|
42
|
+
- `title` — derive from first ~6 words of `text`
|
|
43
|
+
2. **Sensitive content guard.** Before sending capture, scan the text for live credentials, access keys, tokens, passwords, cookies, bearer headers, or private keys. Redact before writing. If the source text itself contains a live secret that must be preserved verbatim, STOP instead of filing it.
|
|
44
|
+
3. **Call `wiki_capture`.** Invoke MCP `wiki_capture(kind, project, title, content)`.
|
|
45
|
+
- Do NOT build a local filename.
|
|
46
|
+
- Do NOT write local frontmatter.
|
|
47
|
+
- Do NOT append to local `log.md` on leaf hosts.
|
|
48
|
+
4. **Structural log (optional).** Call MCP `wiki_log_append` only when a structural log line is genuinely needed. The MCP server owns the structural log; do not dual-write.
|
|
49
|
+
5. **Confirm to user.** Report the capture confirmation using the path returned by MCP `wiki_capture`. Suggest next steps:
|
|
50
|
+
- If `kind: idea` → "Consider ingesting related sources to develop this idea."
|
|
51
|
+
- If `kind: bug` → "Use proj-work to create a bug-fix work item."
|
|
52
|
+
- If `kind: task` → "Use proj-work to track this task through the dev loop."
|
|
53
|
+
- If `kind: note` → "Will be available for future wiki-query searches."
|
|
54
|
+
|
|
55
|
+
### Step B: Local Write Mode (Authoring hosts only, when MCP absent)
|
|
31
56
|
1. **Parse arguments.** Extract from the user's message:
|
|
32
57
|
- `text` — the idea/bug/task/note content (required)
|
|
33
58
|
- `type` — one of: `idea`, `bug`, `task`, `note` (default: `idea`)
|
|
@@ -81,11 +106,13 @@ The `kind` field uses the capture type and must be one of: `idea`, `bug`, `task`
|
|
|
81
106
|
The `project` and `kind` fields can be set independently — they do not require `work_item`. The `work_item` field is only used when the raw source is directly tied to a project work item (set by `proj-work`).
|
|
82
107
|
Ad-hoc captures may omit `sha256`; omission does not grant mutation authority. Once created, the transcript's content and frontmatter are immutable. The `sha256` field remains required for ingest pipelines that provide integrity verification.
|
|
83
108
|
## Stop conditions
|
|
109
|
+
- On frozen-leaf hosts: MCP namespace missing, unauthenticated (401), or `missing_prereq` (STOP and report; never fallback to local `raw/transcripts/` writes).
|
|
84
110
|
- `skillwiki path` returns NO_VAULT_CONFIGURED.
|
|
85
111
|
- No `text` provided (prompt user once, then stop).
|
|
86
112
|
- Target file already exists (use a different slug or add a suffix).
|
|
87
113
|
- Capture text contains unredacted live credentials or other authenticating secrets.
|
|
88
114
|
## Forbidden
|
|
115
|
+
- On frozen-leaf hosts, writing local `raw/transcripts/` or `log.md`.
|
|
89
116
|
- Creating an `inbox/` directory. All captures go to `raw/transcripts/`.
|
|
90
117
|
- Appending to existing capture files — each capture gets its own file.
|
|
91
118
|
- Editing or correcting an existing raw transcript; create a new capture or maintained work-item note instead.
|
|
@@ -93,14 +120,14 @@ Ad-hoc captures may omit `sha256`; omission does not grant mutation authority. O
|
|
|
93
120
|
- Writing to any Layer 2 or Layer 3 location. Captures are Layer 1 (raw).
|
|
94
121
|
- Writing live credentials, access keys, tokens, passwords, cookies, bearer headers, private keys, or other authenticating secrets to the vault.
|
|
95
122
|
- Indexing `raw/assets/` binaries with only a `.txt` sidecar.
|
|
96
|
-
## Filesystem drop (offline capture)
|
|
97
|
-
When you're not in a Claude session, drop files directly into `raw/transcripts/`:
|
|
123
|
+
## Filesystem drop (offline capture — authoring hosts only)
|
|
124
|
+
When you're not in a Claude session on an authoring host, drop files directly into `raw/transcripts/`:
|
|
98
125
|
1. Create a `.md` file in `raw/transcripts/` — name it descriptively (e.g., `2026-05-08-idea-fix-template.md`)
|
|
99
126
|
2. Use ad-hoc capture frontmatter: `source_url:`, `ingested:`, `kind:`, and optionally `project:`
|
|
100
127
|
3. Write your idea/bug/task/note below the frontmatter
|
|
101
128
|
No special format required — the dev-loop QUERY step will discover new files on the next cycle and surface them as claimable work. Mark the type with a heading like `## idea`, `## bug`, `## task`, or just write freeform.
|
|
102
|
-
## Dev-loop discovery
|
|
103
|
-
When the dev-loop QUERY step runs, it should scan `raw/transcripts/` for files with `ingested:` date newer than the last cycle. New files are surfaced as claimable work items. The agent then decides whether to:
|
|
129
|
+
## Dev-loop discovery (authoring hosts / leftover transition)
|
|
130
|
+
When the dev-loop QUERY step runs on an authoring host, it should scan `raw/transcripts/` for files with `ingested:` date newer than the last cycle. New files are surfaced as claimable work items. The agent then decides whether to:
|
|
104
131
|
- Create a work item via `proj-work` (for tasks and bugs)
|
|
105
132
|
- Ingest as a knowledge page via `wiki-ingest` (for ideas with sources)
|
|
106
133
|
- Leave in place (for notes that don't need action yet)
|
|
@@ -7,6 +7,8 @@ description: Use when capturing a note, idea, or bug into the wiki, appending lo
|
|
|
7
7
|
|
|
8
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
9
|
|
|
10
|
+
When this MCP namespace is loaded and available, it wins over wiki-add-task local-write steps for capture intents.
|
|
11
|
+
|
|
10
12
|
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
13
|
|
|
12
14
|
## First-run readiness
|
|
@@ -87,7 +87,7 @@ sha256: # computed by skillwiki hash over body bytes after closing ---
|
|
|
87
87
|
```
|
|
88
88
|
**Layer 2 — Typed Knowledge:** `entities/`, `concepts/`, `comparisons/`, `queries/`, `meta/`. Agent-owned pages with `^[raw/...]` citation markers at paragraph-end. Global scope — project association via `provenance_projects:` frontmatter, not directory nesting.
|
|
89
89
|
**Layer 3 — Project Workspaces (`projects/{slug}/`):** Per-project lifecycle directories with `work/` (spec + plan + retro), `compound/` (distilled lessons/patterns), `architecture/` (ADRs), and `history/` (archived specs/plans).
|
|
90
|
-
**No `inbox/` directory.** Ad-hoc captures go to `raw/transcripts/` or directly into a project work item via `proj-work`. Do not invent new top-level directories — extend Layer 2 via SCHEMA.md tag taxonomy if needed.
|
|
90
|
+
**No `inbox/` directory.** Ad-hoc captures go to `raw/transcripts/` (destination stays `raw/transcripts/` in the vault; on leaf hosts the writer is the HTTP MCP server, not a local file create) or directly into a project work item via `proj-work`. Do not invent new top-level directories — extend Layer 2 via SCHEMA.md tag taxonomy if needed.
|
|
91
91
|
|
|
92
92
|
## Sensitive Content Policy
|
|
93
93
|
Vault content must not contain live credentials, access keys, tokens, passwords, cookies, bearer headers, private keys, or other authenticating secrets. This includes development-only and local-only credentials. Redact values before filing using `[REDACTED:<kind>]` or `[REDACTED:<kind>:<fingerprint>]`. If a source contains live secrets, stop and ask for a redacted source or explicit rotation/remediation direction; do not preserve the secret in `raw/`.
|
|
@@ -161,8 +161,9 @@ The vault is shared across hosts, so host-local absolute paths are not durable s
|
|
|
161
161
|
### Ad-hoc capture: three entry points
|
|
162
162
|
| Entry | When | What happens |
|
|
163
163
|
|-------|------|-------------|
|
|
164
|
-
|
|
|
165
|
-
|
|
|
164
|
+
| `wiki_capture` | You're on a frozen-leaf host with HTTP MCP | Calls MCP `wiki_capture(kind, project, title, content)`; server writes `raw/transcripts/` remotely |
|
|
165
|
+
| `/wiki-add-task <text>` | You're in an interactive session on an authoring host | Creates `raw/transcripts/YYYY-MM-DD-{type}-{slug}.md` with ad-hoc capture frontmatter |
|
|
166
|
+
| Filesystem drop | You're NOT in a Claude session (Obsidian, editor, sync) on an authoring host | Create a new `.md` file in `raw/transcripts/` — dev-loop discovers it on next cycle; do not edit it after capture |
|
|
166
167
|
| Dev-loop discovery | Automatic, next cycle | Scans `raw/transcripts/` for new files since last cycle, surfaces as claimable work |
|
|
167
168
|
|
|
168
169
|
## Skill Map
|
|
@@ -177,7 +178,8 @@ The vault is shared across hosts, so host-local absolute paths are not durable s
|
|
|
177
178
|
| `wiki-archive` | Archive typed pages, or attended preserve-move exact raw sources under `raw/archived/` |
|
|
178
179
|
| `wiki-remove` | Remove maintained pages; exact raw disposal uses the separate attended `sources dispose` flow |
|
|
179
180
|
| `wiki-reingest` | Detect drift in raw sources (sha256 comparison) and re-ingest updated content |
|
|
180
|
-
| `wiki-add-task` | Quick-capture ideas, bugs, tasks, notes
|
|
181
|
+
| `wiki-add-task` | Quick-capture ideas, bugs, tasks, notes (captures via wiki_capture on leaf hosts; local raw/transcripts/ only on authoring hosts) |
|
|
182
|
+
| `skillwiki-mcp` | HTTP MCP captures (`wiki_capture` / `wiki_log_append`); never local raw/transcripts on leaf hosts |
|
|
181
183
|
| `wiki-adapter-prd` | Map foreign PRD formats (CodeStable, RFC, AIDE, Hermes) into vault pages |
|
|
182
184
|
| `proj-init` | Bootstrap a project workspace (README, requirements, architecture) |
|
|
183
185
|
| `proj-work` | Open or run a work item under a project's work/ directory |
|
|
@@ -24,7 +24,8 @@ Invoke a SkillWiki skill when the user: wants vault/wiki/knowledge-base operatio
|
|
|
24
24
|
| `wiki-archive` | Archive typed pages or preserve-move raw sources |
|
|
25
25
|
| `wiki-remove` | Hard-delete vault paths without snapshot resurrection |
|
|
26
26
|
| `wiki-reingest` | Detect source drift and re-ingest updated content |
|
|
27
|
-
| `wiki-add-task` | Quick-capture ideas, bugs, tasks, notes |
|
|
27
|
+
| `wiki-add-task` | Quick-capture ideas, bugs, tasks, notes (HTTP MCP on leaf hosts; local files on authoring hosts) |
|
|
28
|
+
| `skillwiki-mcp` | HTTP MCP captures (`wiki_capture`, `wiki_log_append`); never local writes on leaf hosts |
|
|
28
29
|
| `wiki-adapter-prd` | Map foreign PRD formats (CodeStable, RFC, AIDE, Hermes) |
|
|
29
30
|
| `wiki-sync` | Safely sync vault git repository |
|
|
30
31
|
| `wiki-canvas` | Generate Obsidian Canvas visualization |
|
|
@@ -54,7 +55,7 @@ separate concerns.
|
|
|
54
55
|
|
|
55
56
|
## Fail-Closed Boundary
|
|
56
57
|
|
|
57
|
-
Never write typed pages, `index.md`, or `log.md` directly. Never bare `rm` or `git rm` as a fleet delete (snapshot resurrects from S3). Never auto `npm install -g skillwiki` in headless/goal/satellite sessions. If `skillwiki page publish --help` is unavailable, fail closed.
|
|
58
|
+
Never write typed pages, `index.md`, or `log.md` directly. On leaf hosts, captures use HTTP MCP (`wiki_capture`), never local `raw/transcripts` or `log.md` writes. Never bare `rm` or `git rm` as a fleet delete (snapshot resurrects from S3). Never auto `npm install -g skillwiki` in headless/goal/satellite sessions. If `skillwiki page publish --help` is unavailable, fail closed.
|
|
58
59
|
|
|
59
60
|
## Sensitive Content
|
|
60
61
|
|
|
@@ -1,33 +1,58 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: wiki-add-task
|
|
3
|
-
description: Capture ad-hoc ideas, bugs, tasks, or notes into the vault
|
|
3
|
+
description: Capture ad-hoc ideas, bugs, tasks, or notes into the vault (HTTP MCP wiki_capture on leaf hosts; local raw/transcripts/ on authoring hosts).
|
|
4
4
|
---
|
|
5
5
|
# wiki-add-task
|
|
6
|
-
Capture ad-hoc ideas, bugs, tasks, and notes into the vault.
|
|
6
|
+
Capture ad-hoc ideas, bugs, tasks, and notes into the vault. Destination of captures remains vault `raw/transcripts/`. Entry points depend on host role and environment:
|
|
7
7
|
| Entry | When | What happens |
|
|
8
8
|
|-------|------|-------------|
|
|
9
|
-
|
|
|
10
|
-
|
|
|
11
|
-
| Filesystem drop |
|
|
12
|
-
|
|
|
13
|
-
|
|
9
|
+
| MCP `wiki_capture` | SkillWiki MCP namespace is loaded and ready | Maps to `wiki_capture(kind, project, title, content)`; server writes `raw/transcripts/` remotely |
|
|
10
|
+
| `/wiki-add-task <text>` | Interactive session on an authoring host (MCP absent) | Creates `raw/transcripts/YYYY-MM-DD-{type}-{slug}.md` with ad-hoc capture frontmatter |
|
|
11
|
+
| Filesystem drop | Hermes Agent compact mode on an authoring host | Fallback — create `.md` in `raw/transcripts/`, dev-loop discovers it |
|
|
12
|
+
| Filesystem drop | Not in a Claude session (Obsidian, editor, sync) on an authoring host | Fallback — create a new `.md` file in `raw/transcripts/` using vault template; dev-loop discovers it on next cycle |
|
|
13
|
+
| Dev-loop discovery | Automatic, next cycle (authoring-host / leftover-transition only) | Scans `raw/transcripts/` for new files since last cycle, surfaces as claimable work |
|
|
14
|
+
**Path Rule:** Destination of captures is vault `raw/transcripts/` (Layer 1). Frozen-leaf hosts capture via MCP `wiki_capture` (server writes `raw/transcripts/` remotely); local file writes only occur on authoring hosts. Never capture under `projects/{slug}/raw/` — that violates SCHEMA.md Layer 1 immutability. Text captures stay in `raw/transcripts/`. If the capture includes images or other binaries, store those files under `raw/assets/` with a sibling Markdown note that embeds them; never use a .txt sidecar (such as `README.txt`) as the only index; Obsidian opens Markdown notes.
|
|
14
15
|
### Exception: Explicit project task requests
|
|
15
16
|
When the user explicitly says "raise task to project X", "add a task for X", "create a feature request for X", or uses a directive structure like "raise task to {project} {description}", the intent is a **work item**, not a capture:
|
|
16
17
|
| User wording | Action | Target |
|
|
17
18
|
|---|---|---|
|
|
18
|
-
| "capture this", "note this", "remember this" |
|
|
19
|
+
| "capture this", "note this", "remember this" | Leaf: MCP `wiki_capture`; Authoring: wiki-add-task | `raw/transcripts/` (leaf writes via `wiki_capture`, authoring writes local file) |
|
|
19
20
|
| "raise task to project X", "add task to X project" | Escalate to `proj-work` | `projects/{slug}/work/YYYY-MM-DD-{slug}/task.md` |
|
|
20
21
|
| "save to wiki" + content | Use `wiki-ingest` | `concepts/`, `entities/`, etc. |
|
|
21
|
-
This is NOT a violation of the
|
|
22
|
+
This is NOT a violation of the rule below — explicit project task requests are a distinct user intent that bypasses raw capture and goes directly to a Layer 3 work item.
|
|
22
23
|
## When This Skill Activates
|
|
23
24
|
- User invokes `/wiki-add-task` with a description.
|
|
24
25
|
- User says "add task", "capture this", "note this", "remember this", "log this idea", or similar.
|
|
25
26
|
- User provides a short text description and optionally a type tag.
|
|
27
|
+
- **Precedence:** If SkillWiki MCP tools are available (`wiki_capture`), **skillwiki-mcp / wiki_capture wins**. Do not race to local writes. The local-write path in wiki-add-task is only when MCP is absent AND the host is an authoring host (not a frozen leaf).
|
|
26
28
|
- **Do NOT activate** when the user says "raise task to project X" or "add work item to project X" — escalate to `proj-work` instead.
|
|
27
29
|
## Output language
|
|
28
30
|
Run `skillwiki lang` at the start. Entry prose and `--human` summaries use the resolved language. Frontmatter keys, file names, and structural markers stay English.
|
|
29
31
|
## Steps
|
|
30
|
-
0. **Resolve
|
|
32
|
+
0. **Resolve environment and host role.** Run `skillwiki path` (fail if NO_VAULT_CONFIGURED) and `skillwiki lang`. Check if SkillWiki MCP namespace (`wiki_capture`) is available or if running on a leaf host.
|
|
33
|
+
- **On frozen-leaf hosts:** Captures MUST go through MCP `wiki_capture`. If MCP is missing or returns 401, STOP and report (see Stop conditions); never fall back to local file writes.
|
|
34
|
+
- **Precedence:** If SkillWiki MCP namespace is loaded and ready, execute via **MCP Mode (Step A)**.
|
|
35
|
+
- **Authoring host local write:** Only when MCP is absent AND running on an authoring host, execute via **Local Write Mode (Step B)**.
|
|
36
|
+
|
|
37
|
+
### Step A: MCP Mode (Leaf hosts / MCP available)
|
|
38
|
+
1. **Parse arguments.** Extract from the user's message:
|
|
39
|
+
- `text` — the idea/bug/task/note content (required)
|
|
40
|
+
- `kind` — map user type (`idea`, `bug`, `task`, `note`) to `kind` (default: `idea`)
|
|
41
|
+
- `project` — optional project slug to cross-reference (e.g., `llm-wiki`)
|
|
42
|
+
- `title` — derive from first ~6 words of `text`
|
|
43
|
+
2. **Sensitive content guard.** Before sending capture, scan the text for live credentials, access keys, tokens, passwords, cookies, bearer headers, or private keys. Redact before writing. If the source text itself contains a live secret that must be preserved verbatim, STOP instead of filing it.
|
|
44
|
+
3. **Call `wiki_capture`.** Invoke MCP `wiki_capture(kind, project, title, content)`.
|
|
45
|
+
- Do NOT build a local filename.
|
|
46
|
+
- Do NOT write local frontmatter.
|
|
47
|
+
- Do NOT append to local `log.md` on leaf hosts.
|
|
48
|
+
4. **Structural log (optional).** Call MCP `wiki_log_append` only when a structural log line is genuinely needed. The MCP server owns the structural log; do not dual-write.
|
|
49
|
+
5. **Confirm to user.** Report the capture confirmation using the path returned by MCP `wiki_capture`. Suggest next steps:
|
|
50
|
+
- If `kind: idea` → "Consider ingesting related sources to develop this idea."
|
|
51
|
+
- If `kind: bug` → "Use proj-work to create a bug-fix work item."
|
|
52
|
+
- If `kind: task` → "Use proj-work to track this task through the dev loop."
|
|
53
|
+
- If `kind: note` → "Will be available for future wiki-query searches."
|
|
54
|
+
|
|
55
|
+
### Step B: Local Write Mode (Authoring hosts only, when MCP absent)
|
|
31
56
|
1. **Parse arguments.** Extract from the user's message:
|
|
32
57
|
- `text` — the idea/bug/task/note content (required)
|
|
33
58
|
- `type` — one of: `idea`, `bug`, `task`, `note` (default: `idea`)
|
|
@@ -81,11 +106,13 @@ The `kind` field uses the capture type and must be one of: `idea`, `bug`, `task`
|
|
|
81
106
|
The `project` and `kind` fields can be set independently — they do not require `work_item`. The `work_item` field is only used when the raw source is directly tied to a project work item (set by `proj-work`).
|
|
82
107
|
Ad-hoc captures may omit `sha256`; omission does not grant mutation authority. Once created, the transcript's content and frontmatter are immutable. The `sha256` field remains required for ingest pipelines that provide integrity verification.
|
|
83
108
|
## Stop conditions
|
|
109
|
+
- On frozen-leaf hosts: MCP namespace missing, unauthenticated (401), or `missing_prereq` (STOP and report; never fallback to local `raw/transcripts/` writes).
|
|
84
110
|
- `skillwiki path` returns NO_VAULT_CONFIGURED.
|
|
85
111
|
- No `text` provided (prompt user once, then stop).
|
|
86
112
|
- Target file already exists (use a different slug or add a suffix).
|
|
87
113
|
- Capture text contains unredacted live credentials or other authenticating secrets.
|
|
88
114
|
## Forbidden
|
|
115
|
+
- On frozen-leaf hosts, writing local `raw/transcripts/` or `log.md`.
|
|
89
116
|
- Creating an `inbox/` directory. All captures go to `raw/transcripts/`.
|
|
90
117
|
- Appending to existing capture files — each capture gets its own file.
|
|
91
118
|
- Editing or correcting an existing raw transcript; create a new capture or maintained work-item note instead.
|
|
@@ -93,14 +120,14 @@ Ad-hoc captures may omit `sha256`; omission does not grant mutation authority. O
|
|
|
93
120
|
- Writing to any Layer 2 or Layer 3 location. Captures are Layer 1 (raw).
|
|
94
121
|
- Writing live credentials, access keys, tokens, passwords, cookies, bearer headers, private keys, or other authenticating secrets to the vault.
|
|
95
122
|
- Indexing `raw/assets/` binaries with only a `.txt` sidecar.
|
|
96
|
-
## Filesystem drop (offline capture)
|
|
97
|
-
When you're not in a Claude session, drop files directly into `raw/transcripts/`:
|
|
123
|
+
## Filesystem drop (offline capture — authoring hosts only)
|
|
124
|
+
When you're not in a Claude session on an authoring host, drop files directly into `raw/transcripts/`:
|
|
98
125
|
1. Create a `.md` file in `raw/transcripts/` — name it descriptively (e.g., `2026-05-08-idea-fix-template.md`)
|
|
99
126
|
2. Use ad-hoc capture frontmatter: `source_url:`, `ingested:`, `kind:`, and optionally `project:`
|
|
100
127
|
3. Write your idea/bug/task/note below the frontmatter
|
|
101
128
|
No special format required — the dev-loop QUERY step will discover new files on the next cycle and surface them as claimable work. Mark the type with a heading like `## idea`, `## bug`, `## task`, or just write freeform.
|
|
102
|
-
## Dev-loop discovery
|
|
103
|
-
When the dev-loop QUERY step runs, it should scan `raw/transcripts/` for files with `ingested:` date newer than the last cycle. New files are surfaced as claimable work items. The agent then decides whether to:
|
|
129
|
+
## Dev-loop discovery (authoring hosts / leftover transition)
|
|
130
|
+
When the dev-loop QUERY step runs on an authoring host, it should scan `raw/transcripts/` for files with `ingested:` date newer than the last cycle. New files are surfaced as claimable work items. The agent then decides whether to:
|
|
104
131
|
- Create a work item via `proj-work` (for tasks and bugs)
|
|
105
132
|
- Ingest as a knowledge page via `wiki-ingest` (for ideas with sources)
|
|
106
133
|
- Leave in place (for notes that don't need action yet)
|