From agent-skills
Load project context or save session work to the standard Obsidian artifact files (plan.md, design.md, problems.md, log.md, resources.md).
How this skill is triggered — by the user, by Claude, or both
Slash command
/agent-skills:artifacts [load | save | write <file> | description][load | save | write <file> | description]The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Load project context at session start, or save session work to the standard artifact files. The five primary artifacts are:
Load project context at session start, or save session work to the standard artifact files. The five primary artifacts are:
$ARGUMENTS determines the mode:
| Invocation | Mode | Behavior |
|---|---|---|
/artifacts load | load | Read targeted portions of artifacts to establish session context |
/artifacts save | save | Update all artifacts that changed during the session |
/artifacts write log | write | Update a single named artifact only |
/artifacts write plan | write | Update a single named artifact only |
/artifacts added X, fixed Y | save | Save with description as context hint |
/artifacts (no arg, no prior work) | load | Auto-detect: no session work done yet = load |
/artifacts (no arg, work done) | save | Auto-detect: session work exists = save |
Goal: Establish project context with minimum reads. Do NOT read entire large files.
Find the project's Artifacts/ folder. Check these locations in order:
Artifacts/ subfolderplan.md, log.md, design.md as confirmationIf multiple Artifacts/ folders exist across working directories, identify which project is relevant from the current session's context. If ambiguous, ask the user.
Walk up from the discovered Artifacts/ folder until you find a sibling _Agents/ folder. That folder lives at the Obsidian vault root (vault depth varies - the _Agents/ folder is the anchor, not a fixed number of parents). Read _Agents/README.md from there - unless already read in this session.
Discovery fallback: If Glob does not find _Agents/README.md (Windows Glob behavior with underscore-prefixed folders is inconsistent), fall back to a Bash ls-based walk. List each parent directory level-by-level until a folder containing _Agents/ appears. If you reach a drive root or the user's home directory without finding it, halt and ask the user to confirm the vault location. Do NOT proceed without the conventions doc - the skill's output schema depends on it.
Read each artifact using the minimum necessary to establish context:
plan.md:
log.md:
problems.md:
design.md:
resources.md:
Before writing the summary, compare plan.md's active headings against log.md's #### Completed Plan Items sections. If plan.md still contains items that log.md shows as completed, the plan has not been pruned per the lifecycle rules. Surface this as a "plan drift" note in the summary. Do not auto-fix - the user decides whether to clean up.
Present a brief summary of the project state:
Goal: Record session work to the appropriate artifacts. Minimize reads - only read what you need to anchor edits.
Same as Load Mode step 1.
Same as Load Mode step 2.
Based on the current conversation context and any description in $ARGUMENTS:
Skip files that don't need changes. Not every session touches every artifact:
For each file that needs updating, read only the portion required to make the edit:
log.md: Read only the frontmatter + first heading (first ~15 lines) to anchor the prepend. Do NOT re-read the body.
plan.md: Grep for the active sprint section. Read just that range (offset/limit). Edit in place.
design.md: Grep for the section being modified. Read just that range. Edit in place.
problems.md: Full read is fine (small file). Add new entries or mark resolved.
resources.md: Full read is fine. Append new entries.
Edit each file. Preserve existing content. Follow the file-specific conventions below.
Ensure frontmatter is correct on every file touched. Required fields per _Agents/README.md:
tags - must include project/<kebab-case-identifier>. Check sibling files for the project's existing tag.status - one of active, blocked, completed, superseded. Reflects current state.summary - quoted string, max ~80 chars. Describes file contents, not the project.editors - list of agent names (e.g. Claude-Opus-4.6, Codex-5.3). Add your model if not already listed; do not remove prior entries.created - ISO date YYYY-MM-DD. Set on file creation, never changed afterward.last-modified - ISO date YYYY-MM-DD. Set to today's date on every edit.If a file does not yet exist and the session produced content for it, create it with full frontmatter. Starter skeletons with the canonical headings are provided in skills/artifacts/templates/ - copy the relevant template and fill in the content. Check sibling files in the Artifacts folder for the correct project tag.
If _README.md does not exist in the current Artifacts folder, create it with this exact content:
Agent workspace for this project. See [[_Agents/README]] for conventions.
This pointer note signals to any future agent reading the folder that the vault-level conventions doc is authoritative.
After updating, provide a summary:
Updated artifacts:
plan.md - [what changed]log.md - [what changed]No changes needed:
resources.md - [why not]Goal: Update a single named artifact. Follows the same read and edit patterns as Save Mode, but only for the specified file.
Parse the file name from $ARGUMENTS (e.g. write log, write plan, write design). Apply the same targeted read and edit steps from Save Mode for that file only. Report what changed.
Entries use a strict two-level heading hierarchy:
## YYYY-MM-DD
### Session N: Short Descriptor
Content...
### Session N-1: Short Descriptor
Content...
---
## YYYY-MM-DD (previous day)
### Session L: Short Descriptor
Content...
### Session L-1: Short Descriptor
Content...
Rules:
## is the date heading. One per day. Newer days at top.### is the session heading under that date. Numbered, newest first within the day.--- horizontal rule between days for visual separation.###). Do NOT create a duplicate ## for the same date.Target length: 10-30 lines per session. Record at the feature/decision level, not the per-field level.
Include:
Each session entry ends with a #### Completed Plan Items subsection containing the exact text of any plan.md items completed during that session (see plan.md lifecycle below). This subsection is the archive mechanism for plan.md - it preserves the original planned work alongside the narrative of what actually happened, enabling auditability.
Do NOT include in the narrative:
plan.md is a living to-do list, not a historical record. It contains only incomplete and in-progress work.
Formatting:
-) at appropriate indentation levels. No checkboxes (- [ ] / - [x]).Lifecycle:
#### Completed Plan Items subsection, preserving its exact original formatting (bullets, sub-bullets, indentation).This keeps plan.md lean and scannable. The full history of what was planned and completed is recoverable from log.md entries.
Entries use a letter-prefixed identifier scoped by type:
Q - Open Questions (decisions needed, information gaps)R - Design Risks (known risks with severity, likelihood, mitigation)P - Problems (bugs, blockers, technical debt)Each series numbers independently. Check existing entries to determine the next available number within the relevant series. Include: description, impact, priority, planned fix or resolution date. Risks additionally include severity, likelihood, and mitigation.
Move resolved items to a ## Resolved section at the bottom with a one-line resolution note and date. Do not delete them - the record of how a question was answered or a risk was retired is load-bearing context for future agents.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub rexynexus/agent-skills --plugin agent-skills