wiki-add-task
Capture ad-hoc ideas, bugs, tasks, and notes into the vault. Three entry points depending on where you are:
| Entry |
When |
What happens |
/wiki-add-task <text> |
You're in a Claude Code session (NOT Hermes compact) |
Creates raw/transcripts/YYYY-MM-DD-{type}-{slug}.md with ad-hoc capture frontmatter |
| Filesystem drop |
Hermes Agent compact mode (no slash commands available) |
Same as above — create .md in raw/transcripts/, dev-loop discovers it |
| Filesystem drop |
You're NOT in a Claude session (Obsidian, editor, sync) |
Create a new .md file in raw/transcripts/ using the vault template — dev-loop discovers it on next cycle |
| Dev-loop discovery |
Automatic, next cycle |
Scans raw/transcripts/ for new files since last cycle, surfaces as claimable work |
Path Rule: Captures ALWAYS go to $(skillwiki path)/raw/transcripts/ (Layer 1). Never 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. |
|
|
Exception: Explicit project task requests
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:
| User wording |
Action |
Target |
| "capture this", "note this", "remember this" |
Use wiki-add-task (this skill) |
raw/transcripts/ |
| "raise task to project X", "add task to X project" |
Escalate to proj-work |
projects/{slug}/work/YYYY-MM-DD-{slug}/task.md |
| "save to wiki" + content |
Use wiki-ingest |
concepts/, entities/, etc. |
| This is NOT a violation of the "ALWAYS" rule below — explicit project task requests are a distinct user intent that bypasses raw capture and goes directly to a Layer 3 work item. |
|
|
When This Skill Activates
- User invokes
/wiki-add-task with a description.
- User says "add task", "capture this", "note this", "remember this", "log this idea", or similar.
- User provides a short text description and optionally a type tag.
- Do NOT activate when the user says "raise task to project X" or "add work item to project X" — escalate to
proj-work instead.
Output language
Run skillwiki lang at the start. Entry prose and --human summaries use the resolved language. Frontmatter keys, file names, and structural markers stay English.
Steps
- Resolve vault and language. Run
skillwiki path (fail if NO_VAULT_CONFIGURED) and skillwiki lang.
- Parse arguments. Extract from the user's message:
text — the idea/bug/task/note content (required)
type — one of: idea, bug, task, note (default: idea)
project — optional project slug to cross-reference (e.g., llm-wiki)
- Sensitive content guard. Before writing a 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.
- Build filename. Derive a slug from the first ~6 words of the text (lowercased, hyphens for spaces, non-alphanumeric stripped). The capture file is
raw/transcripts/YYYY-MM-DD-{type}-{slug}.md. Each capture gets its own file — never append to an existing file.
- Write frontmatter. Create the file with ad-hoc capture frontmatter:
---
source_url:
ingested: YYYY-MM-DD
kind: {type}
project: "[[{slug}]]"
---
- Set
kind to the parsed type (idea, bug, task, note).
- If a
project slug was provided, set project: "[[slug]]".
- If no project, omit the
project field entirely.
source_url is null (these are locally originated captures).
sha256 may be omitted for locally originated captures, but the completed capture is still immutable evidence. Corrections create a new capture or a maintained work-item note; never rewrite the existing transcript.
- Write body. Below the frontmatter, write:
# {type}: {text}
{text}
Use the resolved output language for any prose. The type label and frontmatter stay English.
6. Cross-reference (optional). If a project slug was provided:
- Check that
projects/{slug}/ exists in the vault.
- Append a one-line reference to the project's compound notes:
- [YYYY-MM-DD] capture: [text (first 60 chars)] → raw/transcripts/YYYY-MM-DD-{type}-{slug}.md
- Do NOT create a full work item (that's
proj-work's job).
- Update log.md. Append:
## [YYYY-MM-DD] capture | [type]: [text (first 60 chars)]
- Confirm to user. Report what was captured and where. Suggest next steps:
- If
type: idea → "Consider ingesting related sources to develop this idea."
- If
type: bug → "Use proj-work to create a bug-fix work item."
- If
type: task → "Use proj-work to track this task through the dev loop."
- If
type: note → "Will be available for future wiki-query searches."
Capture file format
Each capture is a standalone file with ad-hoc capture frontmatter:
---
source_url:
ingested: 2026-05-08
kind: idea
project: "[[llm-wiki]]"
---
# idea: Fix the template mismatch
Fix the template mismatch between wiki-add-task and the vault template.
The kind field uses the capture type and must be one of: idea, bug, task, note (plus the existing postmortem, session-log, meeting-notes, other for non-capture raw sources).
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).
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.
Stop conditions
skillwiki path returns NO_VAULT_CONFIGURED.
- No
text provided (prompt user once, then stop).
- Target file already exists (use a different slug or add a suffix).
- Capture text contains unredacted live credentials or other authenticating secrets.
Forbidden
- Creating an
inbox/ directory. All captures go to raw/transcripts/.
- Appending to existing capture files — each capture gets its own file.
- Editing or correcting an existing raw transcript; create a new capture or maintained work-item note instead.
- Creating a work item — this is capture-only. Use
proj-work for full work items.
- Writing to any Layer 2 or Layer 3 location. Captures are Layer 1 (raw).
- Writing live credentials, access keys, tokens, passwords, cookies, bearer headers, private keys, or other authenticating secrets to the vault.
- Indexing
raw/assets/ binaries with only a .txt sidecar.
Filesystem drop (offline capture)
When you're not in a Claude session, drop files directly into raw/transcripts/:
- Create a
.md file in raw/transcripts/ — name it descriptively (e.g., 2026-05-08-idea-fix-template.md)
- Use ad-hoc capture frontmatter:
source_url:, ingested:, kind:, and optionally project:
- Write your idea/bug/task/note below the frontmatter
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.
Dev-loop discovery
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:
- Create a work item via
proj-work (for tasks and bugs)
- Ingest as a knowledge page via
wiki-ingest (for ideas with sources)
- Leave in place (for notes that don't need action yet)
1---2name: wiki-add-task3description: Capture ad-hoc ideas, bugs, tasks, or notes into the vault with ad-hoc capture frontmatter and descriptive filenames.4---5# wiki-add-task6Capture ad-hoc ideas, bugs, tasks, and notes into the vault. Three entry points depending on where you are:7| Entry | When | What happens |8|-------|------|-------------|9| `/wiki-add-task <text>` | You're in a Claude Code session (NOT Hermes compact) | Creates `raw/transcripts/YYYY-MM-DD-{type}-{slug}.md` with ad-hoc capture frontmatter |10| Filesystem drop | Hermes Agent compact mode (no slash commands available) | Same as above — create `.md` in `raw/transcripts/`, dev-loop discovers it |11| Filesystem drop | You're NOT in a Claude session (Obsidian, editor, sync) | Create a new `.md` file in `raw/transcripts/` using the vault template — dev-loop discovers it on next cycle |12| Dev-loop discovery | Automatic, next cycle | Scans `raw/transcripts/` for new files since last cycle, surfaces as claimable work |13**Path Rule:** Captures ALWAYS go to `$(skillwiki path)/raw/transcripts/` (Layer 1). Never 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### Exception: Explicit project task requests15When 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| User wording | Action | Target |17|---|---|---|18| "capture this", "note this", "remember this" | Use wiki-add-task (this skill) | `raw/transcripts/` |19| "raise task to project X", "add task to X project" | Escalate to `proj-work` | `projects/{slug}/work/YYYY-MM-DD-{slug}/task.md` |20| "save to wiki" + content | Use `wiki-ingest` | `concepts/`, `entities/`, etc. |21This is NOT a violation of the "ALWAYS" 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## When This Skill Activates23- User invokes `/wiki-add-task` with a description.24- User says "add task", "capture this", "note this", "remember this", "log this idea", or similar.25- User provides a short text description and optionally a type tag.26- **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## Output language28Run `skillwiki lang` at the start. Entry prose and `--human` summaries use the resolved language. Frontmatter keys, file names, and structural markers stay English.29## Steps300. **Resolve vault and language.** Run `skillwiki path` (fail if NO_VAULT_CONFIGURED) and `skillwiki lang`.311. **Parse arguments.** Extract from the user's message:32- `text` — the idea/bug/task/note content (required)33- `type` — one of: `idea`, `bug`, `task`, `note` (default: `idea`)34- `project` — optional project slug to cross-reference (e.g., `llm-wiki`)352. **Sensitive content guard.** Before writing a 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.363. **Build filename.** Derive a slug from the first ~6 words of the text (lowercased, hyphens for spaces, non-alphanumeric stripped). The capture file is `raw/transcripts/YYYY-MM-DD-{type}-{slug}.md`. Each capture gets its own file — never append to an existing file.374. **Write frontmatter.** Create the file with ad-hoc capture frontmatter:38```yaml39---40source_url:41ingested: YYYY-MM-DD42kind: {type}43project: "[[{slug}]]"44---45```46- Set `kind` to the parsed type (`idea`, `bug`, `task`, `note`).47- If a `project` slug was provided, set `project: "[[slug]]"`.48- If no project, omit the `project` field entirely.49- `source_url` is null (these are locally originated captures).50- `sha256` may be omitted for locally originated captures, but the completed capture is still immutable evidence. Corrections create a new capture or a maintained work-item note; never rewrite the existing transcript.515. **Write body.** Below the frontmatter, write:52```markdown53# {type}: {text}54{text}55```56Use the resolved output language for any prose. The type label and frontmatter stay English.576. **Cross-reference (optional).** If a `project` slug was provided:58- Check that `projects/{slug}/` exists in the vault.59- Append a one-line reference to the project's compound notes:60`- [YYYY-MM-DD] capture: [text (first 60 chars)] → raw/transcripts/YYYY-MM-DD-{type}-{slug}.md`61- Do NOT create a full work item (that's `proj-work`'s job).627. **Update log.md.** Append: `## [YYYY-MM-DD] capture | [type]: [text (first 60 chars)]`638. **Confirm to user.** Report what was captured and where. Suggest next steps:64- If `type: idea` → "Consider ingesting related sources to develop this idea."65- If `type: bug` → "Use proj-work to create a bug-fix work item."66- If `type: task` → "Use proj-work to track this task through the dev loop."67- If `type: note` → "Will be available for future wiki-query searches."68## Capture file format69Each capture is a standalone file with ad-hoc capture frontmatter:70```yaml71---72source_url:73ingested: 2026-05-0874kind: idea75project: "[[llm-wiki]]"76---77# idea: Fix the template mismatch78Fix the template mismatch between wiki-add-task and the vault template.79```80The `kind` field uses the capture type and must be one of: `idea`, `bug`, `task`, `note` (plus the existing `postmortem`, `session-log`, `meeting-notes`, `other` for non-capture raw sources).81The `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`).82Ad-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## Stop conditions84- `skillwiki path` returns NO_VAULT_CONFIGURED.85- No `text` provided (prompt user once, then stop).86- Target file already exists (use a different slug or add a suffix).87- Capture text contains unredacted live credentials or other authenticating secrets.88## Forbidden89- Creating an `inbox/` directory. All captures go to `raw/transcripts/`.90- Appending to existing capture files — each capture gets its own file.91- Editing or correcting an existing raw transcript; create a new capture or maintained work-item note instead.92- Creating a work item — this is capture-only. Use `proj-work` for full work items.93- Writing to any Layer 2 or Layer 3 location. Captures are Layer 1 (raw).94- Writing live credentials, access keys, tokens, passwords, cookies, bearer headers, private keys, or other authenticating secrets to the vault.95- Indexing `raw/assets/` binaries with only a `.txt` sidecar.96## Filesystem drop (offline capture)97When you're not in a Claude session, drop files directly into `raw/transcripts/`:981. Create a `.md` file in `raw/transcripts/` — name it descriptively (e.g., `2026-05-08-idea-fix-template.md`)992. Use ad-hoc capture frontmatter: `source_url:`, `ingested:`, `kind:`, and optionally `project:`1003. Write your idea/bug/task/note below the frontmatter101No 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 discovery103When 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:104- Create a work item via `proj-work` (for tasks and bugs)105- Ingest as a knowledge page via `wiki-ingest` (for ideas with sources)106- Leave in place (for notes that don't need action yet)