SKILL.md
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.
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-taskwith 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-workinstead.
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 NOVAULTCONFIGURED) andskillwiki 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
kindto the parsed type (idea,bug,task,note). - If a
projectslug was provided, setproject: "[[slug]]". - If no project, omit the
projectfield entirely. source_urlis null (these are locally originated captures).sha256may 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.
- Cross-reference (optional). If a
projectslug 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 workitem. The workitem 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 pathreturns NOVAULTCONFIGURED.- No
textprovided (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 toraw/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-workfor 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.
Filesystem drop (offline capture)
When you're not in a Claude session, drop files directly into raw/transcripts/:
- Create a
.mdfile inraw/transcripts/— name it descriptively (e.g.,2026-05-08-idea-fix-template.md) - Use ad-hoc capture frontmatter:
source_url:,ingested:,kind:, and optionallyproject: - 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)