incitaciones
Reusable prompts and skills for CLI LLM tools, with native pi package support.
Package details
Install incitaciones from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:incitaciones- Package
incitaciones- Version
0.4.0- Published
- Jul 31, 2026
- Downloads
- 739/mo · 739/wk
- Author
- charly-vibes
- License
- MIT
- Types
- skill, prompt
- Size
- 1.1 MB
- Dependencies
- 0 dependencies · 0 peers
Pi manifest JSON
{
"skills": [
"./pi-package/skills"
],
"prompts": [
"./pi-package/prompts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
Incitaciones 🤖
A collection of reusable prompts and best practices for CLI LLM tools.
Quick Install
Via npm / npx (recommended)
# Install as pi package (native skills, best UX):
pi install npm:incitaciones
# Or install across all tools (pi, Claude Code, Amp, Gemini CLI, etc.):
npx incitaciones install
# Install only the essentials bundle:
npx incitaciones install --bundle essentials
# List available skills:
npx incitaciones list
# Show skill details:
npx incitaciones info commit
From git
Clone and install prompts as skills for pi CLI, Claude Code, Amp, Gemini CLI, and other tools:
git clone https://github.com/charly-vibes/incitaciones.git
cd incitaciones
./install.sh
Install options:
./install.sh --bundle essentials # Core prompts only
./install.sh --bundle planning # Planning workflows
./install.sh --bundle reviews # Review prompts
./install.sh --bundle documentation # Documentation tools
./install.sh --format commands # Legacy flat-file format for other tools
./install.sh --disable-model-invocation # Require explicit /skill:name usage
./install.sh --list # Show available prompts
./install.sh --help # Show all options
After installation:
# pi CLI native skill invocation
/skill:commit
/skill:debug
/skill:create-plan
# pi CLI prompt-template shortcuts
/commit
/debug
/create-plan
# Other compatible tools
/debug
/create-plan
/code-review
For non-pi tools, exact command syntax depends on the harness, but slash-command usage like the examples above is the common case.
Skills are installed to ~/.agents/skills/ (or project .agents/skills/) and copied to tool-specific directories when detected. For pi, skills are discovered from .agents/skills/ / ~/.agents/skills/, and the installer also writes prompt templates to ~/.pi/agent/prompts/ or project .pi/prompts/ so pi users can invoke either /skill:<name> or the shorter /<name> template command.
Native pi package install
This repository is published as an npm package with a pi manifest, so pi can install it directly:
pi install npm:incitaciones
# or from git
pi install git:github.com/charly-vibes/incitaciones
# or from a local clone
pi install .
The repository includes checked-in pi package resources under pi-package/, and the generation step can refresh them when content changes:
pi-package/skills/— Agent Skills with pi-compatible frontmatterpi-package/prompts/— prompt templates for slash-command shortcuts
After changing distilled content or manifest entries, run just generate-pi-resources and commit the updated pi-package/ files.
Publishing a new version
npm version patch # bumps to 0.2.1, creates a git tag
npm version minor # bumps to 0.3.0
npm version major # bumps to 1.0.0
git push --tags # triggers CI → auto-publishes to npm
CI workflow: .github/workflows/npm-publish.yml — runs on v* tags, generates pi resources, then publishes.
Top 10 Most Used Skills
Based on analysis of 621 pi sessions across 43 repositories:
| Skill | Invocations | Repos | What it does |
|---|---|---|---|
| commit | 513 | 41 | Create well-structured, atomic git commits with clear intent |
| rule-of-5-universal | 254 | 35 | 5-stage review for any artifact (Steve Yegge's method) |
| tdd | 168 | 28 | Test-driven development workflow |
| issue-review | 158 | 31 | Review issues for completeness and dependencies |
| debug | 94 | 27 | 7-step diagnostic workflow for debugging issues |
| create-issues | 44 | 19 | Generate trackable issues from implementation plans |
| create-handoff | 31 | 10 | Generate context documents for session continuity |
| grill-me | 28 | 12 | Interview the user relentlessly about a plan or design |
| doc-link-verifier | 27 | 9 | Audit documentation for broken links |
| review-documentation | 27 | 9 | Review docs for cognitive scannability and AI-readiness |
Session Lifecycle & Knowledge Management
Workflow skills that form a complete session lifecycle with persistent operational knowledge:
| Skill | When | What it does |
|---|---|---|
| whisper | Start of project/branch | Manage ~/.whisper/ — global, tiered knowledge directory (init, check, status, link, decommission) |
| next | Quick context switch | Rapid snapshot to ~/.whisper/ — no git, no tickets, just stash |
| park | Thorough context switch | Log to journal, release ticket claims, record to beads epic |
| close | End of day | Log to journal, route knowledge to ~/.whisper/, commit, clear |
| renew | Start of session | Load journal + whisper + beads context, claim tickets with file conflict detection |
Uses $JOURNAL_PATH (default ~/dev/status) for the daily log. See content/references-whisper-workflow.md for the full reference.
Full analysis: content/research-finding-skill-usage-analysis.md
Quick Start
# Browse content
ls content/
# Find prompts about a topic
just find refactoring
# Create new prompt scaffold
just new prompt "Your Task Name"
# Interactive search with fzf
just search
Structure
Everything lives in content/ with descriptive filenames:
prompt-*.md- Reusable prompts (source)distilled/- Optimized prompts for agent consumption (single file or multi-file)research-*.md- Experiments and findingsexample-*.md- Real-world examplestemplate-*.md- Templates for new content
Key infrastructure files:
package.json— npm package withpimanifest andbinentry for npx CLIscripts/cli.mjs— npx CLI entry point (npx incitaciones install/list/info)scripts/generate-pi-resources.mjs— generatespi-package/from manifestpi-package/— generated pi-compatible skills and prompt templates (gitignored).github/workflows/npm-publish.yml— CI: auto-publishes to npm onv*tags.github/workflows/pages.yml— CI: deploys GitHub Pages site
See AGENTS.md for detailed structure and CONTRIBUTING.md for guidelines.
Commands
just --list # Show all commands
just new [type] [name] # Create new content
just find [term] # Search content
just search # Interactive fzf search
just validate # Check metadata
just stats # Show statistics
# Skills installation
just install # Run ./install.sh with any flags you pass through
just generate-pi-resources # Build pi package skills + prompt templates
just validate-pi-package # Verify pi package resources match the manifest
just list-distilled # List all distilled prompts
just validate-distilled # Validate distilled prompts
just list-bundles # Show available bundles
just sync-manifest # Validate manifest references and update content/manifest.json version
just generate-skill NAME # Preview SKILL.md output for a prompt
just nucleus-roundtrip NAME # Use pi to compile+decompile a prompt via Nucleus lambda
just compare-nucleus NAME # Diff a Nucleus roundtrip against the canonical distilled prompt
just analyze-traces PATH # Analyze trace exports from agent tools
just analyze-traces-auto # Auto-detect local CLI history locations
just trace-insights # Process traces and write insight artifacts
Trace Analysis
You can analyze exported traces from Claude, Gemini, Codex, AmpCode, and OpenCode with:
just analyze-traces examples/trace-analysis
If your histories live in the default local CLI directories, use auto-detection:
just analyze-traces-auto
Or directly:
node scripts/analyze-traces.js --auto-detect --format markdown
For the simplest workflow, use the wrapper command:
just trace-insights
That will:
- auto-detect local trace sources
- print a readable markdown summary
- write
.cache/trace-insights/latest-report.json - write
.cache/trace-insights/session-records.jsonl - write
.cache/trace-insights/label-queue.jsonl
The analyzer now uses an incremental cache at .cache/trace-analysis-cache.json.
Unchanged files are reused automatically on later runs. Use --no-cache if you want a full recomputation.
It can also emit normalized session records and join manual labels:
node scripts/analyze-traces.js \
--auto-detect \
--session-records-out /tmp/session-records.jsonl \
--label-queue-out /tmp/label-queue.jsonl
To join labels back into the analysis:
node scripts/analyze-traces.js \
--auto-detect \
--labels examples/trace-analysis/labels-sample.jsonl \
--format markdown
Or with the wrapper:
just trace-insights --labels examples/trace-analysis/labels-sample.jsonl
This scans JSON, JSONL, NDJSON, log, text, and markdown exports, then reports:
- provider mix
- prompt references matched against
content/manifest.json - skill format counts (
single-filevsprogressive-disclosure) - progressive-disclosure reference mentions and stage hints
- slash commands
- tool and model usage
- prompt-to-tool pairs
- workflow transitions
- heuristic session outcomes
- rough conclusions across the analyzed traces
For raw JSON output:
node scripts/analyze-traces.js examples/trace-analysis --format json
The new session-level signals are heuristic, not authoritative:
prompt -> toolpairs estimate when a prompt mention actually led to tool executionworkflow transitionsshow common session shapes likeprompt -> tooloruser -> assistantoutcomesclassify sessions assucceeded,failed,needs_input, orunknownfrom assistant language
This is strongest for comparative usage analysis, not for hard evaluation of prompt quality.
Normalized session records include fields such as:
session_idprovidermodeltask_typeprompts_usedskill_formatsprogressive_skills_usedreferences_usedstage_hintstools_usedtests_run_or_mentionedverification_presentcommit_createdtokens_totalturn_countoutcome_guessfirst_user_excerptlast_assistant_excerpt
The label queue is intended for manual annotation. Each queued record includes suggested questions so you can build a labeled evaluation set over time.
For progressive-disclosure skills, the analyzer now reads optional manifest metadata such as skill_format, eval.stages, and eval.references. That makes it possible to compare not just prompt usage, but also which stages and reference files were actually involved in successful sessions.
The aggregate report now separates adoption from evidence:
Top Skills By SessionandSkill Formats By Sessioncount each skill at most once per session.Top References By SessionandTop Stages By Sessioncount whether a reference or stage appeared in a session.Skill Evidence Hits,Top Reference Evidence Hits, andTop Stage Evidence Hitscount repeated detections across messages and tool inputs.
Use the session-level sections for effectiveness comparisons. Use the evidence-hit sections to understand how often the analyzer observed supporting signals.
Current auto-detected sources include common local paths such as:
~/.claude/projects~/.gemini/tmp/**/chats/session-*.json~/.codex/history.jsonl~/.codex/log/codex-tui.log
AmpCode and OpenCode are only included when conversation-like files are found.
Meta Prompt for LLMs
Use this prompt when asking other LLMs to help you organize prompts in your projects
I want to organize prompts and AI instructions for my project. Please help me set up a system based on these principles:
STRUCTURE:
- Single flat directory (e.g., "prompts/" or ".ai/")
- Slugified filenames with type prefixes:
- prompt-task-{name}.md for specific tasks
- prompt-system-{name}.md for agent configurations
- prompt-workflow-{name}.md for multi-step processes
- instructions-{context}.md for project-specific instructions
METADATA:
Every file should have YAML frontmatter:
---
title: Human Readable Title
type: prompt|instruction|workflow
tags: [relevant, searchable, tags]
tools: [claude-code, cursor, aider]
status: draft|tested|verified
created: YYYY-MM-DD
updated: YYYY-MM-DD
version: 1.0.0
related: [other-file.md]
source: where-this-came-from
---
CONTENT STRUCTURE:
1. ## When to Use - Context for applying this prompt
2. ## The Prompt - The actual prompt text in a code block
3. ## Example - At least one concrete usage example
4. ## Expected Results - What success looks like
5. ## Variations - Alternative approaches
6. ## References - Links to sources or research
7. ## Notes - Caveats or additional context
WORKFLOW:
1. Create content from templates
2. Test with real AI tools
3. Update status: draft → tested → verified
4. Link related files in frontmatter
5. Track changes in CHANGELOG.md
AUTOMATION:
Create a justfile or Makefile with commands:
- new: Create from template
- find: Search by tag or keyword
- search: Interactive fzf browser
- validate: Check metadata completeness
- stats: Show repository statistics
Please analyze my project at [path] and:
1. Propose which existing prompts/instructions to capture
2. Suggest an appropriate directory name
3. Create initial template files
4. Set up basic automation commands
5. Draft 2-3 initial prompt files based on current usage
Focus on simplicity and discoverability over complex organization.
Examples
Creating a new task prompt:
just new prompt "Incremental Refactoring"
# Edit content/prompt-task-incremental-refactoring.md
# Edit content/distilled/incremental-refactoring.md (or create a directory for multi-file)
# Add prompt text, examples, and distilled runtime form
# Register the prompt in content/manifest.json
# Run just validate-distilled && just sync-manifest
# Test it with Claude Code
# Mark as tested and commit
Finding related content:
just find refactoring
# Shows all files tagged with 'refactoring'
just search
# Opens fzf to interactively browse and preview content
Validating content:
just validate
# Checks required metadata, status values, and related links
# Reports any issues
Experimenting with Nucleus lambda roundtrips:
just nucleus-roundtrip distill-prompt
# Uses pi -p to compile the distilled prompt to lambda and decompile it back to prose
# Writes content/compiled/nucleus/distill-prompt.lambda.md
# Writes content/compiled/nucleus/distill-prompt.roundtrip.md
just compare-nucleus distill-prompt
# Diffs the roundtrip prose against the canonical distilled prompt
Pass extra pi flags through when needed:
just nucleus-roundtrip distill-prompt --model sonnet:high
The content/compiled/nucleus/ directory is experimental. It is intentionally kept outside content/distilled/ so these comparison artifacts do not affect installation or packaged skills.
What Goes Here?
✅ Good candidates:
- Prompts you use repeatedly
- Task patterns that work well
- Tool-specific configurations
- Research on what works
- Real examples of successful interactions
❌ Don't include:
- Project-specific code
- Sensitive information
- One-off experiments without documentation
- Incomplete drafts without context
Philosophy
Flat structure - One directory, easy to find everything Rich metadata - Searchable, relatable, trackable Tested content - Everything should have real usage examples Source attribution - Credit where ideas come from Version control - Track evolution of prompts over time
Contributing
See CONTRIBUTING.md for:
- File naming conventions
- Metadata requirements
- Quality standards
- Submission process
Tools
This repository is designed to work with:
- Claude Code - Anthropic's CLI
- Aider - AI pair programming
- Cursor - AI-first editor
- Gemini CLI - Google's CLI
- Any other LLM CLI tool
The prompts are tool-agnostic where possible, with tool-specific variations noted.
License
[To be determined]
Related Projects
A note on authorship
All the code in this repository was generated by a large language model. This is not a confession, nor an apology. It's a fact, like the one that says water boils at a hundred degrees at sea level: neutral, technical, and with consequences one discovers later.
What the human did is what tends to happen before and after things come into existence: thinking. Reviewing requirements, arguing about edge cases, understanding what needs to be built and why, deciding how the system should behave when reality —which is capricious and does not read documentation— confronts it with situations nobody anticipated. The hours of planning, of design, of reading specifications until exhaustion dissolves the boundary between understanding and hallucination.
The LLM writes. The human knows what it should say.
There is a distinction, even if looking at the commit history makes it hard to find. The distinction is that a machine can produce correct code without understanding anything, the same way a calculator can solve an integral without knowing what time is. Understanding what that integral is for, whether it actually solves the problem, whether the problem was the right problem to begin with — that remains human territory. For now.