alekspetrov/navigator/nav-sop
Claude Code and agent skill by alekspetrov/navigator
- community
Checking that the SKILL.md file is still in the repository.
Create Standard Operating Procedures after solving novel issues, establishing patterns, or documenting workflows. Use when user says "document this solution", "save this for next time", "create SOP".
Install
npx vskill@latest install alekspetrov/navigator/nav-sopSKILL.md
Navigator SOP Creator Skill
Create Standard Operating Procedures (SOPs) - reusable documentation for processes, integrations, debugging solutions, and workflows.
When to Invoke
Invoke this skill when the user:
- Says "document this solution", "save this for next time"
- Says "create SOP", "make this reusable"
- Solves a novel issue and mentions "don't want to hit this again"
- Sets up integration and says "document the setup"
- Establishes pattern and mentions "team should follow this"
DO NOT invoke if:
- Creating task documentation (use nav-task skill)
- Updating architecture docs (different purpose)
- Simple bug fix with no reusable pattern
Execution Steps
Step 1: Determine SOP Category
Ask user which category (or infer from context):
Categories:
- integrations - Third-party service setups
- debugging - Common issues & solutions
- development - Dev workflows, patterns
- deployment - Deploy procedures, CI/CD
Examples:
- "How to set up Stripe webhooks" →
integrations/ - "Fixing CORS errors" →
debugging/ - "Testing authenticated routes" →
development/ - "Deploy to production" →
deployment/
Step 2: Determine SOP Name
If user provided name:
- Use their name (sanitize: lowercase, hyphens)
- Example: "Stripe Payment Setup" → "stripe-payment-setup"
If no name provided:
- Generate from context:
{service}-{action} - Example: "github-oauth-integration"
- Example: "cors-proxy-errors"
Step 3: Check if SOP Already Exists
Check existing SOPs in category:
If similar SOP exists:
Step 4: Generate SOP Content
Create SOP document from conversation:
Command or code
npm install stripe
- stripe@12.0.0
added 1 package
// Code example import Stripe from 'stripe';
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY);
STRIPE_SECRET_KEY=sk_test_... STRIPE_WEBHOOK_SECRET=whsec_...
import Stripe from 'stripe';
export class StripeService { private stripe: Stripe;
constructor() { this.stripe = new Stripe(process.env.STRIPE_SECRET_KEY!, { apiVersion: '2023-10-16', }); }
async createPaymentIntent(amount: number) { return await this.stripe.paymentIntents.create({ amount: amount * 100, // Convert to cents currency: 'usd', }); } }
export async function handleStripeWebhook(req: Request, res: Response) { const sig = req.headers['stripe-signature'];
try { const event = stripe.webhooks.constructEvent( req.body, sig, process.env.STRIPE_WEBHOOK_SECRET! );
// Handle event switch (event.type) { case 'payment_intent.succeeded': // Process successful payment break; }
res.json({ received: true }); } catch (err) { res.status(400).send(Webhook Error: ${err.message}); } }
curl -X POST http://localhost:3000/api/create-payment \ -H "Content-Type: application/json" \ -d '{"amount": 10}'
{ "clientSecret": "pi_xxx_secret_yyy" }
stripe listen --forward-to localhost:3000/webhook
Ready! You are using Stripe API Version [2023-10-16]
Error: No signatures found matching the expected signature
// Use raw body for webhook verification app.post('/webhook', express.raw({type: 'application/json'}), handleStripeWebhook);
Step 5: Save SOP File
Write to appropriate category:
Filename: .agent/sops/{category}/{name}.md
Step 6: Update Navigator Index
Edit .agent/DEVELOPMENT-README.md to add SOP to index:
Step 7: Link to Related Task (If Applicable)
If SOP came from specific task, add reference:
In task doc:
In SOP:
Cross-linking helps discoverability.
Step 8: Confirm Success
Show completion message:
SOP Categories Explained
1. integrations/
Purpose: How to set up third-party services
Examples:
stripe-payment-setup.mdgithub-oauth-integration.mdsendgrid-email-config.mdredis-session-store.md
Structure: Setup steps + Configuration + Testing
2. debugging/
Purpose: How to solve common issues
Examples:
cors-proxy-errors.mdjwt-token-expiration.mddatabase-connection-timeout.mdbuild-errors-typescript.md
Structure: Symptoms + Root cause + Fix + Prevention
3. development/
Purpose: Development workflows & patterns
Examples:
testing-authenticated-routes.mdadding-new-api-endpoint.mddatabase-migration-workflow.mdcomponent-testing-patterns.md
Structure: When to use + Steps + Example + Best practices
4. deployment/
Purpose: Deploy, CI/CD, infrastructure
Examples:
deploy-to-production.mdrollback-failed-deploy.mdsetup-github-actions.mdenvironment-variables.md
Structure: Prerequisites + Steps + Verification + Rollback
Common Use Cases
After Solving Tricky Bug
After Integration Setup
Establishing Team Pattern
Error Handling
Category directory doesn't exist:
SOPs directory missing entirely:
Duplicate SOP name:
Success Criteria
SOP creation is successful when:
- [ ] SOP file created in correct category
- [ ] Contains all required sections
- [ ] Includes working code examples
- [ ] Testing instructions provided
- [ ] Navigator index updated
- [ ] Linked to related task (if applicable)
Scripts
generate_sop.py: Create SOP from conversation
- Input: Conversation, category, name
- Output: Formatted SOP markdown
Best Practices
Good SOP names:
stripe-payment-integration(specific, descriptive)cors-proxy-configuration(clear purpose)jwt-token-refresh(explains what)
Bad SOP names:
fix(too vague)integration(not specific)sop1(meaningless)
When to create SOPs:
- ✅ Solved novel issue (will happen again)
- ✅ Set up integration (reusable process)
- ✅ Established pattern (team should follow)
- ✅ Complex workflow (needs documentation)
- ❌ One-off bug (not reusable)
- ❌ Obvious solution (don't over-document)
SOP quality checklist:
- [ ] Clear problem description
- [ ] Step-by-step solution
- [ ] Complete code examples (copy-paste ready)
- [ ] Testing instructions
- [ ] Troubleshooting common issues
Notes
SOPs are living documents:
- Created when pattern established
- Updated when solution improves
- Referenced frequently by team
- Prevent repeated mistakes
They transform:
- Individual knowledge → Team knowledge
- One-time solution → Reusable process
- Tribal knowledge → Documented procedure
Impact: Zero repeated mistakes over time
This skill provides same functionality as /nav:doc sop command but with natural language invocation.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationWarning, 71 of 100Marginal. 1 run. Evaluated 8 months ago.
Source
- SKILL.md in the repositoryCheckingskills/nav-sop/SKILL.md
Popularity
- Repository stars
- 174
- Repository forks
- 8
- 7-day trend score
- 26
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 6 May 2026, 6 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/alekspetrov/navigator/nav-sop)