Files
nanobot-runtime/skills/project/SKILL.md
2026-06-10 06:39:52 +02:00

3.2 KiB

name, aliases, description
name aliases description
project
proj
Project management — long-running things with notes, next-steps, and status. Use when user mentions "project".

Project

File-backed project store in projects/. Each project is one markdown file with YAML frontmatter (status, priority, created, slug) and a free-form body for notes and next-steps.

Backend

skills/project/scripts/project.py — deterministic CRUD for frontmatter and basic operations. Agent handles all body edits via edit_file / apply_patch.

Commands

project add <název> — create

  1. Run: uv run skills/project/scripts/project.py add "<název>" [--priority high|medium|low]
  2. Default priority is medium.
  3. Echo: Created project '<slug>' (priority: <priority>)

project list — list active

  1. Run: uv run skills/project/scripts/project.py list
  2. Echo JSON output. Format as:
    Active projects:
    - <slug> (priority: high) — <first line of body / project name>
    
  3. If empty → "No active projects."

project show <slug> — display

  1. Run: uv run skills/project/scripts/project.py show <slug>
  2. Echo the full markdown file.

project status <slug> <active|paused|done> — change status

  1. Run: uv run skills/project/scripts/project.py status <slug> <status>
  2. Echo: Project '<slug>' is now <status>.

project next <slug> <text> — set next step

  1. Read the project file.
  2. Use edit_file to replace the content under ## Další krok with the new text.
  3. If the section does not exist, add it before the end of the file.
  4. Echo: Next step for '<slug>' updated.

project note <slug> <text> — add a note

  1. Read the project file.
  2. Use edit_file to append a bullet under ## Poznámky: - <today>: <text>
  3. If ## Poznámky does not exist, add it after the first heading.
  4. Echo: Note added to '<slug>'.

project switch <slug> — session context

  1. Run my(action="set", key="project_context", value="<slug>").
  2. Echo: Switched to project '<slug>'. Next project commands without slug will use this context.
  3. If a command is missing a slug and project_context is set, use it automatically.

Rules

  • Slug = kebab-case from first 4 words of the name. Used as filename (<slug>.md).
  • Frontmatter is read-only for the agent — never edit it directly in the file. Use project.py status to change status.
  • Body edits (notes, next-step, structure changes) are always done by the agent via edit_file / apply_patch.
  • No database — pure markdown files. Git-friendly, one commit per change.
  • Session context (project switch) lives only in my scratchpad and is lost on restart. Re-run project switch after restart if needed.
  • Priority = high | medium | low. list sorts by priority (high first).
  • Status = active | paused | done. list shows only active.

Edge cases

  • project add with existing slug → error, do not overwrite.
  • project show / project status / project next / project note with missing slug → "Project '' not found."
  • Missing ## Poznámky or ## Další krok → agent creates the section.
  • Empty projects/list returns empty array.