Install
$ agentstack add skill-almax000-claude-skills-project ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
/project — Unified Project Lifecycle Manager
Manage the full lifecycle of all local projects through a single registry at ~/.claude/project-registry.json.
Status lifecycle: active → paused → archived → deleted
Command Routing
Parse the user's input to determine which command to execute:
| Input Pattern | Command | |---------------|---------| | /project new | New — Create a new project from scratch | | /project list | List — Show all registered projects | | /project status [name] | Status — View/update a project's status | | /project archive | Archive — Archive a project | | /project health | Health — Scan for issues across all projects | | /project register | Register — Register the current directory as a project | | /project scan | Scan — Auto-discover unregistered projects | | /project (no args) | List (default) |
Registry Format
File: ~/.claude/project-registry.json
{
"version": "1.0.0",
"scan_dirs": ["~/Documents", "~/Movies", "~/Music", "~/Photos"],
"projects": {
"": {
"path": "~/Documents/",
"status": "active|paused|archived|deleted",
"description": "One-line description",
"stack": "Key technologies",
"created": "YYYY-MM-DD",
"updated": "YYYY-MM-DD",
"tags": ["tag1", "tag2"],
"ports": [3000, 5173],
"remote": "https://github.com/...",
"archive_note": "(only for archived projects)"
}
}
}
Command: /project new
Create a new project with the full initialization pipeline.
Phase 1: Register
- Ask user for target directory (default:
~/Documents/) - Create directory:
mkdir -p - Initialize git:
cd && git init - Add entry to
project-registry.jsonwith statusactive - Auto-detect: ask user for description, stack, tags
Phase 2: .claude/ Structure
Create the modular .claude/ directory:
.claude/
├── agents/
│ ├── code-reviewer.md
│ ├── debugger.md
│ ├── deep-researcher.md
│ ├── general-researcher.md
│ └── lite-researcher.md
├── hooks/
│ ├── error-lesson-reminder.sh
│ └── session-start-read-lessons.sh
├── rules/
│ ├── code-quality.md
│ ├── git-workflow.md
│ └── _error-lessons.md
└── settings.json
Agent templates:
code-reviewer.md:
---
model: sonnet
description: Code quality and security review
---
Review the code changes for: quality, security, maintainability, and test coverage.
Focus on: OWASP top 10, error handling, edge cases, naming clarity.
Output: structured review with severity levels (critical/warning/info).
debugger.md:
---
model: sonnet
description: Root cause analysis and minimal fixes
---
Diagnose the issue by: reading error messages, tracing code paths, checking recent changes.
Focus on root cause, not symptoms. Propose the minimal fix.
Do NOT refactor surrounding code or add unrelated improvements.
deep-researcher.md:
---
model: opus
description: Deep technical research — architecture, source analysis, advanced concepts
---
Conduct deep research. Read source code, analyze architecture, explore advanced concepts.
Return detailed analysis with complete code examples.
general-researcher.md:
---
model: sonnet
description: Daily research — comparisons, best practices, API usage
---
Research the topic efficiently. Compare options, check latest developments, find practical solutions.
Return concise summary with actionable recommendations.
lite-researcher.md:
---
model: haiku
description: Quick lookups and batch scanning
---
Quick research. Find the answer fast, keep it brief.
error-lesson-reminder.sh:
#!/bin/bash
echo "reminder: Check _error-lessons.md before ending session. Record any new lessons learned."
session-start-read-lessons.sh:
#!/bin/bash
if [ -f ".claude/rules/_error-lessons.md" ]; then
echo "reminder: Review error lessons at .claude/rules/_error-lessons.md"
fi
code-quality.md:
# Code Quality Standards
## Limits
| Metric | Limit |
|--------|-------|
| Function length | ():
\`\`\`
| Type | Description |
|------|-------------|
| feat | New feature |
| fix | Bug fix |
| docs | Documentation |
| refactor | Refactoring |
| test | Tests |
| chore | Build/tooling |
## Principles
- One commit, one logical change
- Concise, meaningful messages
- English by default (check project CLAUDE.md for overrides)
_error-lessons.md:
# Error Lessons
> Record mistakes to prevent repeating them.
## Template
\`\`\`
## EXXX: Short Title
**Severity**: HIGH / MEDIUM / LOW
**Date**: YYYY-MM-DD
**Context**: What were you doing?
**Mistake**: What went wrong?
**Rule**: What should be done instead?
\`\`\`
## Lessons
(none yet)
settings.json:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Stop",
"hooks": [".claude/hooks/error-lesson-reminder.sh"]
}
],
"PreToolUse": [
{
"matcher": "SessionStart",
"hooks": [".claude/hooks/session-start-read-lessons.sh"]
}
]
}
}
Make all .sh files executable with chmod +x.
Phase 3: Product Context
Create .claude/product/ with template files:
VISION.md:
# Vision
## Problem
What problem does this project solve?
## Solution
How does it solve it?
## Differentiation
What makes this different from alternatives?
USERS.md:
# Users
## Primary User
- **Who**:
- **Use case**:
- **Pain point**:
## Secondary Users
(add as discovered)
SCOPE.md:
# Scope
## Core Features (IN)
-
## Out of Scope (NOT doing)
-
## Future Consideration
-
ROADMAP.md:
# Roadmap
## Current Milestone
- **Goal**:
- **Target**:
## Decision Log
| Date | Decision | Rationale |
|------|----------|-----------|
Use AskUserQuestion to guide user through filling in VISION and SCOPE basics interactively.
Phase 4: Port Reservation
Ask: "Does this project need localhost ports (e.g., dev server, API, database)?"
If yes:
- Read
~/.claude/port-registry.jsonto find available ports in 9000-9999 - Reserve requested number of ports
- Update port-registry.json
- Record ports in project-registry.json
Phase 5: CLAUDE.md Generation
Generate a project CLAUDE.md with:
- Project name and description
- Quick start commands
- Directory structure reference
- Port assignments (if any)
- Reference to
.claude/modular structure
Phase 6: Summary
Output a creation summary:
Project "" created at
.claude/ agents(5), hooks(2), rules(3)
product/ VISION, USERS, SCOPE, ROADMAP
ports:
remote: ` when ready>
Next steps:
1. cd
2. Start coding or run `/product update` to refine product context
Command: /project list
- Read
~/.claude/project-registry.json - Output table sorted by: status (active first), then updated date (newest first)
- Format:
| # | Project | Status | Stack | Updated | Path |
|---|---------|--------|-------|---------|------|
Show summary counts: X active, Y paused, Z archived.
Command: /project status [name]
If name provided:
- Look up project in registry
- If project has a local path, check:
git log -1 --format="%ai"for last commitdu -shfor disk usagegit status --shortfor uncommitted changes
- Display full project info
If status change requested (user says "pause it", "archive it", etc.):
- Update status in registry
- Update the
updateddate - Confirm change
If no name and running inside a project directory:
- Auto-detect project from current working directory matching registry paths
Command: /project archive
- Look up project in registry
- Confirm with user: "Archive ? This will update the registry. Options: backup to SanDisk / just mark as archived"
- If backup requested:
- Check if
/Volumes/Sandiskis mounted zip -r -q /Volumes/Sandisk/.zip- Record archive location in
archive_note
- Update status to
archivedin registry - Ask: "Delete local directory to free disk space?" (only if backup succeeded)
- If yes, delete and set
pathtonull
Command: /project health
Scan all projects and report issues:
1. Disk Usage (top 5)
For each registered project with a local path, run du -sh and rank.
2. Stale Projects
Projects with status: active but last git commit > 30 days ago. Suggest pausing.
3. Unregistered Projects
Scan scan_dirs for directories containing .git or .claude that are NOT in the registry. List them and offer batch registration.
4. Redundancy Detection
Projects with similar stack and tags where both are paused. Flag for potential consolidation.
5. Port Conflicts
Cross-reference ports across all projects. Flag any duplicates.
6. Summary & Recommendations
For each issue, suggest a specific action: register, pause, archive, cleanup, consolidate.
Command: /project register
Register the current working directory as an existing project.
- Determine project name from directory name (allow override)
- Auto-detect:
- stack: from
package.json(Node/TS),pyproject.toml/requirements.txt(Python),Cargo.toml(Rust),go.mod(Go),build.gradle(Java) - remote: from
git remote get-url origin - created: from
git log --reverse --format="%ai" | head -1 - updated: from
git log -1 --format="%ai" - ports: from existing port-registry.json entries matching this project
- Ask user for: description, tags
- Write to registry
- Confirm registration
Command: /project scan
- Read
scan_dirsfrom registry - For each dir, find subdirectories containing
.gitor.claude(max depth 2) - Compare with registry — identify unregistered projects
- For each unregistered project, show: name, path, last commit date, size
- Ask user: "Register all / select individually / skip?"
- For selected projects, run the register flow (auto-detect + ask description/tags)
Important Rules
- Always read
~/.claude/project-registry.jsonbefore any operation — it is the single source of truth - Always write back to registry after modifications — keep it in sync
- Never delete local files without explicit user confirmation
- Backup before delete — always offer backup option before removing local directories
- Expand
~to full path when running shell commands, but store as~in registry for portability
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: almax000
- Source: almax000/claude-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.