> ## Documentation Index
> Fetch the complete documentation index at: https://pullup.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Usage Examples

> Common patterns and examples for using PullUp

## Documentation-First Approach

The recommended way to use PullUp is with documentation files. PullUp automatically extracts URLs, credentials, pages, and features.

### Single Documentation File

Create `app-info.md`:

```markdown theme={null}
# MyApp

Application runs at http://localhost:3000

## Features
- User login at /login
- Dashboard at /dashboard
- Product catalog at /products

## Test Credentials
- Email: test@example.com
- Password: testpass123
```

Generate skill:

```bash theme={null}
node execute.js --name myapp --docs app-info.md
```

### Documentation Folder

```bash theme={null}
# Reads all .md, .txt files recursively
node execute.js --name myapp --docs ./project-docs
```

PullUp automatically extracts:

* URLs (http\://... or localhost:...)
* Page paths (starting with /)
* Credentials (email/password patterns)
* Features (headings, bullet points)

## Guided Exploration

Use the `--prompt` flag to provide context:

```bash theme={null}
# Emphasize certain features
node execute.js --name myapp --docs ./docs \
  --prompt "Focus on the e-commerce checkout flow"

# Guide documentation reading
node execute.js --name myapp --docs ./project-docs \
  --prompt "The admin folder contains the most important features"

# Provide application context
node execute.js --name myapp --url http://localhost:3000 \
  --prompt "This is a React SPA with client-side routing"
```

## Example: E-commerce Site

```bash theme={null}
# Create documentation
cat > ecommerce-info.md << EOF
# MyStore E-commerce

Production URL: https://mystore.example.com
Dev URL: http://localhost:3000

## Key Features
- Product browsing: /products
- Shopping cart: /cart
- Checkout: /checkout
- User account: /account
- Order history: /orders

## Test Account
Email: buyer@test.com
Password: testpass123

## Admin Panel
URL: /admin
Email: admin@test.com
Password: adminpass123
EOF

# Generate skill
node execute.js --name mystore --docs ecommerce-info.md \
  --prompt "Focus on checkout flow and admin panel"
```

## Example: SaaS Dashboard

```bash theme={null}
# Using existing project docs
node execute.js --name saasapp --docs ./docs \
  --max-depth 4 \
  --max-pages 100 \
  --prompt "Document the analytics dashboard and settings"
```

## Example: Simple Landing Page

```bash theme={null}
# Minimal setup - just URL
node execute.js --name landingpage --url https://example.com \
  --max-pages 10
```

## Control Exploration

### Depth and Page Limits

```bash theme={null}
# Shallow exploration (fast)
node execute.js --name myapp --url http://localhost:3000 \
  --max-depth 2 --max-pages 20

# Deep exploration (thorough)
node execute.js --name myapp --url http://localhost:3000 \
  --max-depth 5 --max-pages 150
```

### Verbose Output

```bash theme={null}
# See detailed exploration progress
node execute.js --name myapp --docs ./docs --verbose
```

## Updating Skills

When your application changes:

```bash theme={null}
# Simple update
node execute.js --name myapp --update

# Update with new documentation
node execute.js --name myapp --docs ./updated-docs --update

# Update with new guidance
node execute.js --name myapp --update \
  --prompt "New payment integration added"
```

## Custom Output Location

```bash theme={null}
# Save to project directory
node execute.js --name myapp --docs ./docs \
  --output ./.claude/skills

# Save to shared team location
node execute.js --name myapp --docs ./docs \
  --output /shared/team-skills
```

## Using Generated Skills

After creation, use the skill naturally:

<CodeGroup>
  ```bash Testing Homepage theme={null}
  "Use myapp-testing to verify the homepage loads correctly"
  ```

  ```bash Testing Login theme={null}
  "Test the login flow using myapp-testing skill with the test credentials"
  ```

  ```bash Testing Forms theme={null}
  "Use myapp-testing to check if the contact form validation works"
  ```

  ```bash Testing Flows theme={null}
  "Test the complete checkout flow in myapp using myapp-testing skill"
  ```
</CodeGroup>

## Best Practices

<AccordionGroup>
  <Accordion title="Include credentials in documentation">
    Enable exploration of authenticated areas by providing test credentials in your documentation files.
  </Accordion>

  <Accordion title="Document key pages explicitly">
    List important pages in your documentation to ensure they're discovered and mapped.
  </Accordion>

  <Accordion title="Use --prompt for context">
    Provide application-specific context to help PullUp prioritize and understand your app better.
  </Accordion>

  <Accordion title="Start small, then expand">
    Begin with `--max-pages 25` and increase as needed. Faster iteration during initial setup.
  </Accordion>

  <Accordion title="Update regularly">
    Re-run PullUp when you add significant features to keep the skill current.
  </Accordion>

  <Accordion title="Review generated knowledge">
    Check `~/.claude/skills/yourapp-testing/app-knowledge.json` to verify accuracy.
  </Accordion>
</AccordionGroup>

## Generated Skill Structure

When PullUp completes, you'll get:

```
~/.claude/skills/myapp-testing/
├── SKILL.md              # Skill definition
├── app-knowledge.json    # Application structure map
├── test-patterns.js      # Test helper functions
└── README.md            # Usage documentation
```

### What's Included

* **Pages discovered** - All URLs, titles, and page types
* **Forms mapped** - Input fields, buttons, validation
* **User flows** - Login, signup, checkout sequences
* **Test data** - Appropriate values for each form field
* **Navigation** - Site structure and hierarchy

## Team Collaboration

Share generated skills with your team:

```bash theme={null}
# Add skill to version control
git add ~/.claude/skills/myapp-testing/
git commit -m "Add PullUp skill for myapp"
git push

# Team members can use immediately
"Use myapp-testing to verify the new feature"
```

<Tip>
  Skills are portable and self-contained. Team members don't need to re-run PullUp.
</Tip>

## Next Steps

<CardGroup cols={2}>
  <Card title="View on GitHub" icon="github" href="https://github.com/jaytoday/pullup">
    Star the repository and see more examples
  </Card>

  <Card title="Report Issues" icon="bug" href="https://github.com/jaytoday/pullup/issues">
    Found a bug or have a feature request?
  </Card>
</CardGroup>
