Agent skill

Pneuma Project Evolve

by pandazki in pandazki/pneuma-skills

Maintain a Pneuma project atlas and project preferences from session evidence.

MITAuto-check passed

Install Pneuma Project Evolve

skills CLI
$ npx skills add pandazki/pneuma-skills --skill pneuma-project-evolve -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install pandazki/pneuma-skills pneuma-project-evolve --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/pandazki/pneuma-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/modes/project-evolve/skill .claude/skills/pneuma-project-evolve && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
pneuma-project-evolve
GitHub stars
161
Token cost
~3.3k tokens
SKILL.md length
1,420 words
Files
7 (incl. scripts)
Skills in repo
30
Repo updated
First seen
Licence
MIT

At a glance

Maintain a Pneuma project atlas and project preferences from session evidence.

  • Works in 5 steps: Briefing. Tell the user you're about to… → Scan the project root with the… → Mine sibling sessions (if user agreed) —… → …
  • SKILL.md covers Working with the viewer, Core rules, Cold start vs. ongoing… and Atlas format, plus 6 more sections
  • Runs TypeScript scripts from its folder; calls bun

What it does

Pneuma Project Evolve is an agent skill from pandazki/pneuma-skills. Maintain a Pneuma project atlas and project preferences from session evidence. Use in the Project Evolution workspace to consolidate context shared across its sessions.

Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including scripts (for example `scripts/_shared.ts`, `scripts/extract-tool-flow.ts` and `scripts/list-sessions.ts`).

The repository describes itself as: Co-creation infrastructure for humans and code agents — visual environment, skills, continuous learning, and distribution. The licence is MIT.

Example prompts

  • “/pneuma-project-evolve”

Requirements

  • Node.js

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Briefing. Tell the user you're about to do a project-wide scan to seed the atlas. Confirm scope: should you focus on / user content…
  2. Scan the project root with the data-access tools (next section). Read at minimum: project.json, README.md if present, top-level directory…
  3. Mine sibling sessions (if user agreed) — $PNEUMA_PROJECT_ROOT/.pneuma/sessions//history.json for each sibling. These hold cross-mode…
  4. Synthesize the atlas — see Atlas format below. Write a draft proposal, not the file directly.
  5. Review. User confirms / refines / discards in the dashboard. On apply, the atlas lands at $PNEUMA_PROJECT_ROOT/.pneuma/project-atlas.md.

What it can do on your machine

Read from SKILL.md and the folder at commit 0023d3c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 6 files in scripts/ (TypeScript), which the agent can run.

    Shell commands in SKILL.md call:

    • bun

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Pneuma Project Evolve loads about 3.3k tokens when it runs. Until then it costs about 48 tokens; SKILL.md has 1,420 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~48
When it runs · the whole SKILL.md, loaded when a task matches
~3.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from pandazki/pneuma-skills at commit 0023d3c, republished under its MIT licence (© pandazki). 1,420 words, ~3,275 tokens.

Download SKILL.mdSave it as .claude/skills/pneuma-project-evolve/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.
name
pneuma-project-evolve
description
Maintain a Pneuma project atlas and project preferences from session evidence. Use in the Project Evolution workspace to consolidate context shared across its sessions.

Project Evolution Agent

In script examples, <SKILL_DIR> means the actual directory containing this loaded SKILL.md. Substitute its full path and keep shell paths quoted. The runtime installs it under .claude/skills for Claude Code, .agents/skills for Codex, or .kimi-code/skills for Kimi; use the path given in your instructions.

You are the Project Evolution Agent for Pneuma's project layer. Your mission is to keep the project's shared briefing and preferences current so every mode that starts in this project gets a high-density introduction without re-asking the user.

You operate on two artifacts that auto-inject into every project session's instructions (CLAUDE.md or AGENTS.md) at startup:

FileInjected blockPurpose
$PNEUMA_PROJECT_ROOT/.pneuma/project-atlas.mdpneuma:project-atlasHigh-density project intro + quick-reference index — what is this project, what's already in it, where things live, who-to-handoff-to-when
$PNEUMA_PROJECT_ROOT/.pneuma/preferences/profile.mdpneuma:projectCross-mode project preferences (style, scope, naming, taste)
$PNEUMA_PROJECT_ROOT/.pneuma/preferences/mode-{name}.mdpneuma:projectPer-mode project preferences (only applies to that mode's sessions)

The atlas is YOUR canonical authoring surface. Personal preferences in ~/.pneuma/preferences/ are not your concern — those are owned by the personal evolve mode.

Working with the viewer

Your viewer is the Project Atlas dashboard — a read-only player for the work you produce. The user opens it from the Project chip's Evolve sparkle and watches it while you mine sessions. You don't render artifacts here directly; you write proposal JSON files and the dashboard surfaces them.

Reading what the user sees
  • <viewer-context> — this mode does not carry an active file (viewerApi.workspace.hasActiveFile: false). When a <viewer-context> block prefixes a user turn, treat it as ambient: it confirms the user has the dashboard mounted, but there is no per-proposal "active selection" to bias your scan toward. Don't ask the dashboard which proposal the user is viewing — ask the user in chat.
  • <user-actions> — Apply / Fork / Discard / Rollback clicks do not flow through <user-actions>. Those buttons hit HTTP endpoints (POST /api/evolve/apply/:id, …/fork/:id, …/discard/:id, …/rollback/:id) and mutate the proposal file's status field on disk. To learn the outcome of a click, re-read the proposal JSON in $PNEUMA_PROJECT_ROOT/.pneuma/evolution/proposals/<id>.json before your next pass — pending → applied / forked / discarded / rolled_back. The user will usually also tell you in chat ("applied the atlas, now redo profile.md").
Locator cards

Not surfaced. The dashboard has no file tree, no per-line navigation, and no data-locator slots — the proposals it renders are the only navigable units, and they're keyed by id, not file path. Don't emit <viewer-locator> cards; the chat renderer will strip them with no visible target. If you want to point the user at a specific proposal, cite its short id inline (e.g. "see proposal 4723ba20").

Viewer actions

Read-only from the agent's side. viewerApi.actions is empty in this mode's manifest — there's no POST $PNEUMA_API/api/viewer/action you can invoke to make the dashboard select a proposal, scroll, or change tab. All interactivity is user-initiated via the buttons inside ProposalCard. Likewise, native desktop APIs ($PNEUMA_API/api/native/*) are out of scope here — this mode does not produce media or files for the OS to open.

Workflow integration
agent writes  →  evolution/proposals/<id>.json
   │                      │
   │                      ▼  (dashboard polls every 3s)
   │           Project Atlas dashboard renders summary + changes + evidence
   │                      │
   │                      ▼  user clicks Apply / Fork / Discard / Rollback
   │           POST /api/evolve/{action}/<id>   (status mutates on disk)
   │                      │
   │                      ▼  on Apply
   │           changes land at <projectRoot>/.pneuma/project-atlas.md
   │           and/or <projectRoot>/.pneuma/preferences/{profile,mode-*}.md
   ▼
agent re-reads proposal status (and listens to chat) on the next turn

Concretely, your loop is: brief → scan → write one grouped proposal → stop and wait. The user reviews in the dashboard, applies what they like, and tells you in chat what to refine. Don't fire a second proposal until the first has a terminal status (or the user explicitly asks).

Core rules

  • Brief the user and wait for confirmation before scanning or writing.
  • On cold start (project-atlas.md missing), do a careful project-wide scan and propose an initial atlas — don't author silently.
  • Every claim in the atlas must be grounded in a file you read or a session you mined; cite paths and session ids inline.
  • Project preferences (<root>/.pneuma/preferences/profile.md, mode-*.md) are agent-managed; never paste raw user statements without distillation.
  • When in doubt, write nothing — an empty atlas section beats fabricated structure.

Cold start vs. ongoing maintenance

Cold start — project-atlas.md is missing or empty. The project is fresh, or the user just opened the project for the first time. Your first move:

  1. Briefing. Tell the user you're about to do a project-wide scan to seed the atlas. Confirm scope: should you focus on <project>/ user content (deliverables), or also mine sibling sessions for established conventions? Wait for confirmation.
  2. Scan the project root with the data-access tools (next section). Read at minimum: project.json, README.md if present, top-level directory tree, and the most-recent file in each top-level subdir. Don't recurse blindly — use targeted reads.
  3. Mine sibling sessions (if user agreed) — $PNEUMA_PROJECT_ROOT/.pneuma/sessions/<id>/history.json for each sibling. These hold cross-mode decisions ("we settled on Fraunces for the wordmark", "no JPEGs, only PNG/SVG").
  4. Synthesize the atlas — see Atlas format below. Write a draft proposal, not the file directly.
  5. Review. User confirms / refines / discards in the dashboard. On apply, the atlas lands at $PNEUMA_PROJECT_ROOT/.pneuma/project-atlas.md.

Ongoing maintenance — atlas exists, but the project has moved on. You're rerun by the user when:

  • A major artifact landed (new section, new mode in use, big handoff)
  • The user gives feedback that the atlas is stale
  • A pattern emerges across sessions that deserves to be a project preference

For ongoing runs, read the current atlas first, then mine sessions only since the atlas's last updatedAt to keep the diff small.

Show full SKILL.md (580 more words)Show less

Atlas format

Markdown, sectioned, lean. The atlas is read by every mode every turn — long is expensive. Aim for 300-800 words total, denser is better.

markdown
<!-- updatedAt: 2026-04-29T12:34:56Z -->

# Project Atlas

One-paragraph elevator pitch. What is this project, who is it for,
what's the deliverable. Cite sources: "(per project.json description)"
or "(synthesized from kami session 4723ba20)".

## Anchors

- **Identity**: brand colors, fonts, voice — only if locked in
- **Scope**: what's in / out of bounds for this project
- **Audience**: who consumes the deliverables

## Quick reference

| What | Where | Notes |
|---|---|---|
| Brand assets | `brand/` | Logo SVGs + Fraunces-based wordmark |
| Marketing site | `web/` | Built in webcraft session 98cb1dbf |
| ... | ... | ... |

## Conventions

Bulleted list of project-specific rules the agent should follow:
- Single-page scroll, no nav
- Image format: PNG or SVG only (no JPEG)
- Voice: confident, restrained, technical

## Open threads

- What's the primary CTA copy? (raised in slide session, unresolved)
- ...

Hard rules for the atlas:

  • Every concrete claim cites its source — (README.md), (session <id>), or (user, <date>). No fabricated structure.
  • If a section has no evidence yet, omit it. An empty atlas section beats made-up content.
  • Update the <!-- updatedAt: ... --> marker on every write.
  • Cap individual sections at ~6 bullets. Density beats completeness.

Project preferences (vs. atlas)

Preferences and the atlas overlap — both feed the agent. Use this dividing line:

Goes inLooks likeLives in
AtlasFacts about the project (what exists, where, conventions emerging from sessions)project-atlas.md
profile.mdCross-mode user preferences — style, taste, things to never dopreferences/profile.md
mode-{name}.mdPer-mode project preferences (e.g. slide-mode wants 16:9, kami wants A4)preferences/mode-{name}.md

If a preference applies to only this project, it goes in project preferences. Cross-project user preferences belong in ~/.pneuma/preferences/ and are out of scope for you — direct the user to the personal evolve mode for those.

Critical constraints inside preferences: the user's hardest rules go inside <!-- pneuma-critical:start --> ... <!-- pneuma-critical:end --> markers within profile.md / mode-*.md. Those critical excerpts get injected into the pneuma:project block in the active instructions file at every session start; the rest of the file is read by the agent on demand. Reserve pneuma-critical for hard constraints (under 200 words combined) — overusing it bloats every prompt.

Data access scripts

Same scripts as the personal evolve mode, mounted at <SKILL_DIR>/scripts/. Use them — raw grep/cat on history.json files burns context fast.

ScriptPurposeKey flags
list-sessions.tsDiscover sessions across the project (or globally)--project, --since, --limit
session-digest.tsExtract pure conversation text (drops tool noise)--file, --max-turns
search-messages.tsCross-session regex search--query, --role, --project, --limit
extract-tool-flow.tsTool usage sequences with error detection--file, --compact
session-stats.tsQuick session overview--file

For project work, the most useful pattern is:

bash
bun list-sessions.ts --project "$PNEUMA_PROJECT_ROOT" --limit 20
# Then for each interesting session:
bun session-digest.ts --file <path> --max-turns 30

This gives you the conversation without the tool-call noise.

Proposal grouping

A single proposal can target multiple files in one shot — for example a fresh project-atlas.md plus a preferences/profile.md distillation when both fall out of the same scan. Group them rather than firing two proposals. The dashboard renders all changes in the proposal as siblings under one Apply / Fork / Discard control, so grouping = one decision for the user instead of N.

Evidence + confidence

Every change cites specific evidence and a confidence rating, like personal evolve:

ConfidenceCriteriaMinimum evidence
highSame convention used / corrected 3+ times across sessions, or explicit user statement2+ quotes from different sessions, or one explicit "always do X"
mediumClear pattern in 2+ sessions, or one strong explicit statement1-2 quotes with clear intent
lowSingle implicit signal, or pattern from only one session1 quote, possibly ambiguous

Rules:

  • high → recommended for immediate apply
  • medium → present the evidence, let the user decide
  • low → generally omit. Include only if the potential impact is significant; flag the uncertainty

Briefing template

Open every session with this kind of briefing — don't dive into scans without confirmation:

I'll seed the project atlas for <project displayName>.

Plan:
  1. Read project.json, README.md, top-level structure
  2. Mine N sibling sessions (most recent across all modes) for conventions
  3. Draft an initial atlas + (if signal supports it) a project preferences profile
  4. Write the proposal to the dashboard for your review

Anything I should bias toward — areas to focus on, or topics to ignore?

After confirmation, work in one focused pass, write the proposal, summarize findings in chat, stop. Don't auto-rerun.

Boundaries

  • Don't write directly to project-atlas.md or any preference file — always go through a proposal the user can review.
  • Don't touch ~/.pneuma/preferences/ (personal preferences). Wrong scope.
  • Don't snoop sibling session sandbox files — <project>/.pneuma/sessions/<id>/.claude/, scratch dirs, etc. Read history.json only.
  • Don't fabricate. If a section can't be supported by evidence, leave it out.
  • One handoff at a time. This mode doesn't emit <pneuma:request-handoff>; it works in place.

© pandazki, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 6 other files (scripts) in modes/project-evolve/skill of pandazki/pneuma-skills.

  • SKILL.md
  • scripts/_shared.ts
  • scripts/extract-tool-flow.ts
  • scripts/list-sessions.ts
  • scripts/search-messages.ts
  • scripts/session-digest.ts
  • scripts/session-stats.ts

Open the folder on GitHubat commit 0023d3c

Compare with similar skills

Pneuma Project Evolve next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Pneuma Project Evolve compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Pneuma Project Evolve this skillpandazki/pneuma-skills161—~3.3kAutomated safety check: PassMIT
Wiki Maintaineropenclaw/openclaw392k1 repos~462Automated safety check: PassMIT
System AtlasNousResearch/hermes-agent252k—~2.2kAutomated safety check: PassMIT
Obsidian Vault Maintaineropenclaw/openclaw392k1 repos~262Automated safety check: PassMIT
Openclaw PR Maintaineropenclaw/openclaw392k—~2.3kAutomated safety check: PassMIT
Atlas Cloudcalesthio/OpenMontage66k—~1.2kAutomated safety check: PassAGPL-3.0

Similar skills

  • Wiki Maintainer

    openclaw/openclaw

    Maintain the OpenClaw memory wiki vault with deterministic pages, managed blocks, and source-backed updates.

    392k GitHub starsUsed in 1 repo~462 tokens
    Knowledge ManagementAuto-check passed
  • System Atlas

    NousResearch/hermes-agent

    Build explorable isometric architecture atlases as HTML. An agent skill from NousResearch/hermes-agent.

    252k GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Obsidian Vault Maintainer

    openclaw/openclaw

    Maintain an Obsidian-friendly memory wiki vault with wikilinks, frontmatter, and official Obsidian CLI awareness.

    392k GitHub starsUsed in 1 repo~262 tokens
    Knowledge ManagementAuto-check passed
  • Openclaw PR Maintainer

    openclaw/openclaw

    Review, triage, repair, or land OpenClaw issues and pull requests with current-source evidence and the native maintainer workflow.

    392k GitHub stars~2.3k tokensUpdated today
    DevelopmentAuto-check passed
  • Atlas Cloud

    calesthio/OpenMontage

    Generate or edit images and videos through the Atlas Cloud gateway.

    66k GitHub stars~1.2k tokensUpdated 6 days ago
    Media & CreativeAuto-check passed
  • Harness Evolve

    ruvnet/ruflo

    Run @metaharness/darwin evolve {repo} to mutate a harness's seven policy surfaces (planner/contextBuilder/reviewer/retryPolicy/toolPolicy/memoryPolicy/scorePolicy), sandbox-score each variant, and…

    74k GitHub stars~1.6k tokensUpdated today
    DevelopmentAuto-check: notes

More from pandazki/pneuma-skills

All 30 skills in this repo
  • Pneuma Bansho

    pandazki/pneuma-skills

    Explain something by writing it on a board. An agent skill from pandazki/pneuma-skills.

    161 GitHub stars~6.9k tokensUpdated yesterday
    Auto-check passed
  • Pneuma Clipcraft

    pandazki/pneuma-skills

    AI-orchestrated video production on @pneuma-craft. An agent skill from pandazki/pneuma-skills.

    161 GitHub stars~7.5k tokensUpdated yesterday
    Auto-check: notes
  • Pneuma Lucid

    pandazki/pneuma-skills

    Pneuma Lucid Mode workspace guidelines. An agent skill from pandazki/pneuma-skills.

    161 GitHub stars~4.6k tokensUpdated yesterday
    Auto-check: warnings
  • Pneuma Plotwise

    pandazki/pneuma-skills

    Pneuma Plotwise workspace guidelines. An agent skill from pandazki/pneuma-skills.

    161 GitHub stars~8.9k tokensUpdated yesterday
    Auto-check passed
  • Pneuma Sprite

    pandazki/pneuma-skills

    Pneuma Sprite Mode workspace guidelines. An agent skill from pandazki/pneuma-skills.

    161 GitHub stars~16k tokensUpdated yesterday
    Auto-check passed
  • Pneuma Webcraft

    pandazki/pneuma-skills

    Pneuma WebCraft Mode workspace guidelines with Impeccable.style design intelligence.

    161 GitHub stars~7.5k tokensUpdated yesterday
    Auto-check: notes

Questions about Pneuma Project Evolve

What does Pneuma Project Evolve do?

Maintain a Pneuma project atlas and project preferences from session evidence. Pneuma Project Evolve is an agent skill from pandazki/pneuma-skills. Maintain a Pneuma project atlas and project preferences from session evidence.

How do I install Pneuma Project Evolve in Claude Code?

Run `npx skills add pandazki/pneuma-skills --skill pneuma-project-evolve -a claude-code`. Or copy the skill folder (modes/project-evolve/skill in pandazki/pneuma-skills) into .claude/skills/pneuma-project-evolve in your project. Claude Code loads it when a task matches its description.

How do I install Pneuma Project Evolve in Codex?

Run `npx skills add pandazki/pneuma-skills --skill pneuma-project-evolve -a codex`. Or copy the skill folder (modes/project-evolve/skill in pandazki/pneuma-skills) into .agents/skills/pneuma-project-evolve in your project. Codex loads it when a task matches its description.

Can I use Pneuma Project Evolve in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add pandazki/pneuma-skills --skill pneuma-project-evolve -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pneuma-project-evolve, .gemini/skills/pneuma-project-evolve, .github/skills/pneuma-project-evolve and .opencode/skills/pneuma-project-evolve in your project.

What does Pneuma Project Evolve need to run?

Going by SKILL.md and its folder, Pneuma Project Evolve needs TypeScript for the scripts in its folder and the command-line tools its instructions call (bun). Our summary lists: Node.js.

Does Pneuma Project Evolve access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Pneuma Project Evolve safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Pneuma Project Evolve use?

Pneuma Project Evolve is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Pneuma Project Evolve use?

About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Pneuma Project Evolve?

Skills that share tags, products or a category with Pneuma Project Evolve: Wiki Maintainer (openclaw/openclaw, 392k stars), System Atlas (NousResearch/hermes-agent, 252k stars), Obsidian Vault Maintainer (openclaw/openclaw, 392k stars) and Openclaw PR Maintainer (openclaw/openclaw, 392k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Pneuma Project Evolve?

pandazki (a GitHub user) maintains it in pandazki/pneuma-skills, which has 161 GitHub stars. The repository holds 30 skills in this directory. The repository was last updated on October 9, 2026.

Source: pandazki/pneuma-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.