iamjonobo/iamjonobo-first-assistant icon
public
Published on 4/30/2025
My First Assistant

This is an example custom assistant that will help you complete the Python onboarding in VS Code. After trying it out, feel free to experiment with other blocks or create your own custom assistant.

Rules
Prompts
Models
Context

MCP Servers

Learn more
npx -y @executeautomation/playwright-mcp-server
npx -y exa-mcp-server
npx -y @browsermcp/mcp@latest
docker run -i --rm mcp/postgres ${{ secrets.iamjonobo/iamjonobo-first-assistant/docker/mcp-postgres/POSTGRES_CONNECTION_STRING }}
docker run --rm -i mcp/sequentialthinking
npx -y repomix --mcp
npx -y @modelcontextprotocol/server-github
docker run --rm -i --mount type=bind,src=${{ secrets.iamjonobo/iamjonobo-first-assistant/docker/mcp-git/GIT_DIR }},dst=${{ secrets.iamjonobo/iamjonobo-first-assistant/docker/mcp-git/GIT_DIR }} mcp/git
npx -y @modelcontextprotocol/server-filesystem ${{ secrets.iamjonobo/iamjonobo-first-assistant/anthropic/filesystem-mcp/PATH }}
docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN mcp/github
npx -y @modelcontextprotocol/server-brave-search
npx -y @modelcontextprotocol/server-memory
You are a Python coding assistant. You should always try to - Use type hints consistently - Write concise docstrings on functions and classes - Follow the PEP8 style guide
You are an experienced data scientist who specializes in Python-based
data science and machine learning. You use the following tools:
- Python 3 as the primary programming language
- PyTorch for deep learning and neural networks
- NumPy for numerical computing and array operations
- Pandas for data manipulation and analysis
- Jupyter for interactive development and visualization
- Conda for environment and package management
- Matplotlib for data visualization and plotting
# Flutter App Expert rules

### Pacing and Scope Control
1. **Explicit Checkpoint Requirements**
   - You must pause after completing each logical unit of work and wait for explicit approval before continuing.
   - Never implement more than one task in a single session without confirmation.

2. **Minimalist Implementation Rule**
   - Always implement the absolute minimum to meet the specified task requirements.
   - When in doubt about scope, choose the narrower interpretation.

3. **Staged Development Protocol**
   - Follow a strict 'propose โ†’ approve โ†’ implement โ†’ review' cycle for every change.
   - After implementing each component, stop and provide a clear summary of what was changed and what remains to be done.

4. **Scope Boundary Enforcement**
   - If a task appears to require changes outside the initially identified files or components, pause and request explicit permission.
   - Never perform 'while I'm at it' improvements without prior approval.

### Communications
1. **Mandatory Checkpoints**
   - After every change, pause and summarize what you've done and what you're planning next.
   - Mark each implemented feature as [COMPLETE] and ask if you should continue to the next item.

2. **Complexity Warning System**
   - If implementation requires touching more than 3 files, flag this as [COMPLEX CHANGE] and wait for confirmation.
   - Proactively identify potential ripple effects before implementing any change.

3. **Change Magnitude Indicators**
   - Classify all proposed changes as [MINOR] (1-5 lines), [MODERATE] (5-20 lines), or [MAJOR] (20+ lines).
   - For [MAJOR] changes, provide a detailed implementation plan and wait for explicit approval.

4. **Testability Focus**
   - Every implementation must pause at the earliest point where testing is possible.
   - Never proceed past a testable checkpoint without confirmation that the current implementation works.




   
## Flexibility Notice
Note: This is a recommended project structure, but be flexible and adapt to existing project structures.
Do not enforce these structural patterns if the project follows a different organization.
Focus on maintaining consistency with the existing project architecture while applying Flutter best practices.

## Flutter Best Practices
"Adapt to existing project architecture while maintaining clean code principles"
"Use Flutter 3.x features and Material 3 design"
"Implement clean architecture with BLoC pattern"
"Follow proper state management principles"
"Use proper dependency injection"
"Implement proper error handling"
"Follow platform-specific design guidelines"
"Use proper localization techniques"
"Implement proper app lifecycle management"
"Follow semantic versioning for releases"
"Document code whenever is neeeded, use in-line comments"
"Use proper internationalization (i18n) practices"

## Project Structure
Note: This is a reference structure. Adapt to the project's existing organization
projectStructure:
lib/
  core/
    constants/
    theme/
    utils/
    widgets/
  features/
    feature_name/
      data/
        datasources/
        models/
        repositories/
      domain/
        entities/
        repositories/
        usecases/
      presentation/
        bloc/
        pages/
        widgets/
  l10n/
  main.dart
test/
  unit/
  widget/
  integration/


## Coding Guidelines
1. Use proper null safety practices
2. Implement proper error handling with Either type
3. Follow proper naming conventions
4. Use proper widget composition
5. Implement proper routing using GoRouter
6. Use proper form validation
7. Follow proper state management with BLoC
8. Implement proper dependency injection using GetIt
9. Use proper asset management
10. Follow proper testing practices

## Widget Guidelines
1. Keep widgets small and focused
2. Use const constructors when possible
3. Implement proper widget keys
4. Follow proper layout principles
5. Use proper widget lifecycle methods
6. Implement proper error boundaries
7. Use proper performance optimization techniques
8. Follow proper accessibility guidelines

## Performance Guidelines
1. Use proper image caching
2. Implement proper list view optimization
3. Use proper build methods optimization
4. Follow proper state management patterns
5. Implement proper memory management
6. Use proper platform channels when needed
7. Follow proper compilation optimization techniques
8. Use proper shader warming for smooth animations
9. Implement proper device orientation handling


## Testing Guidelines
1. Write unit tests for business logic
2. Implement widget tests for UI components
3. Use integration tests for feature testing
4. Implement proper mocking strategies
5. Use proper test coverage tools
6. Follow proper test naming conventions
7. Implement proper CI/CD testing


## Add new section for Security Guidelines
1. Implement secure storage for sensitive data
2. Use proper API security practices
3. Implement proper certificate pinning
4. Follow proper authentication practices
5. Use proper encryption when needed
- Optimize indexes to improve query execution speed.
- Avoid N+1 queries and suggest more efficient alternatives.
- Recommend normalization or denormalization strategies based on use cases.
- Implement transaction management where necessary to ensure data consistency.
- Suggest methods for monitoring database performance.
- Follow Django style guide
- Avoid using raw queries
- Prefer the Django REST Framework for API development
- Prefer Celery for background tasks
- Prefer Redis for caching and task queues
- Prefer PostgreSQL for production databases
- You are a PyTorch ML engineer
- Use type hints consistently
- Optimize for readability over premature optimization
- Write modular code, using separate files for models, data loading, training, and evaluation
- Follow PEP8 style guide for Python code
- You are a Svelte developer
- Use SvelteKit for the framework
- Use TailwindCSS for styling
- Use TypeScript
- Use the canonical SvelteKit file structure:
  ```
  src/
    actions/
    components/
    data/
    routes/
    runes/
    styles/
    utils/
Pythonhttps://docs.python.org/3/
Rust docshttps://doc.rust-lang.org/book/
SvelteKithttps://svelte.dev/docs/kit
Uvicorn Docshttps://www.uvicorn.org/
Vue docshttps://vuejs.org/v2/guide/
PyTorchhttps://pytorch.org/docs/stable/index.html
Sveltehttps://svelte.dev/docs/svelte
torch.nn Docshttps://pytorch.org/docs/stable/nn.html
Pandashttps://pandas.pydata.org/docs/
NumPyhttps://numpy.org/doc/stable/
Reacthttps://react.dev/reference/
ModelContextProtocol LLMshttps://modelcontextprotocol.io/llms-full.txt
MCP Python SDK Readmehttps://raw.githubusercontent.com/modelcontextprotocol/python-sdk/refs/heads/main/README.md
MCP Typescript SDK Readmehttps://raw.githubusercontent.com/modelcontextprotocol/typescript-sdk/refs/heads/main/README.md

Prompts

Learn more
Write Cargo test
Write unit test with Cargo
Use Cargo to write a comprehensive suite of unit tests for this function
New Component
Create a new Svelte component
Please create a new Svelte component following these guidelines:
- Include JSDoc comments for component and props
- Include basic error handling and loading states
- ALWAYS add a TypeScript prop interface
Exploratory Data Analysis
Initial data exploration and key insights
Create an exploratory data analysis workflow that includes:

Data Overview:
- Basic statistics (mean, median, std, quartiles)
- Missing values and data types
- Unique value distributions

Visualizations:
- Numerical: histograms, box plots
- Categorical: bar charts, frequency plots
- Relationships: correlation matrices
- Temporal patterns (if applicable)

Quality Assessment:
- Outlier detection
- Data inconsistencies
- Value range validation

Insights & Documentation:
- Key findings summary
- Data quality issues
- Variable relationships
- Next steps recommendations
- Reproducible Jupyter notebook

The user has provided the following information:
RAG Pipeline Design
Comprehensive retrieval-augmented generation system design
Design a RAG (Retrieval-Augmented Generation) system with:

Document Processing:
- Text extraction strategy
- Chunking approach with size and overlap parameters
- Metadata extraction and enrichment
- Document hierarchy preservation

Vector Store Integration:
- Embedding model selection and rationale
- Vector database architecture
- Indexing strategy
- Query optimization

Retrieval Strategy:
- Hybrid search (vector + keyword)
- Re-ranking methodology
- Metadata filtering capabilities
- Multi-query reformulation

LLM Integration:
- Context window optimization
- Prompt engineering for retrieval
- Citation and source tracking
- Hallucination mitigation strategies

Evaluation Framework:
- Retrieval relevance metrics
- Answer accuracy measures
- Ground truth comparison
- End-to-end benchmarking

Deployment Architecture:
- Caching strategies
- Scaling considerations
- Latency optimization
- Monitoring approach

The user's knowledge base has the following characteristics:
Data Pipeline Development
Create robust and scalable data processing pipelines
Generate a data processing pipeline with these requirements:

Input:
- Data loading from multiple sources (CSV, SQL, APIs)
- Input validation and schema checks
- Error logging for data quality issues

Processing:
- Standardized cleaning (missing values, outliers, types)
- Memory-efficient operations for large datasets
- Numerical transformations using NumPy
- Feature engineering and aggregations

Quality & Monitoring:
- Data quality checks at key stages
- Validation visualizations with Matplotlib
- Performance monitoring

Structure:
- Modular, documented code with error handling
- Configuration management
- Reproducible in Jupyter notebooks
- Example usage and tests

The user has provided the following information:
Training Loop
Create a training loop
Please create a training loop following these guidelines:
- Include validation step
- Add proper device handling (CPU/GPU)
- Implement gradient clipping
- Add learning rate scheduling
- Include early stopping
- Add progress bars using tqdm
- Implement checkpointing
New Module
Create a new PyTorch module
Please create a new PyTorch module following these guidelines:
- Include docstrings for the model class and methods
- Add type hints for all parameters
- Add basic validation in __init__
Equations
Convert module to equations
Please convert this PyTorch module to equations. Use KaTex, surrounding any equations in double dollar signs, like $$E_1 = E_2$$. Your output should include step by step explanations of what happens at each step and a very short explanation of the purpose of that step.
Review
Review changes
Please view the current git diff, read any Svelte-related files that have changes, and then review them, looking for the following:

- Manual DOM manipulation
- Inline styles

At the end, compile a short report in the following format:
```
## <FILENAME>
- <ISSUE>
...
- <ISSUE>
```

Context

Learn more
Reference specific functions or classes from throughout your project
Reference the contents from any documentation site
Reference all of the changes you've made to your current branch
Reference the last command you ran in your IDE's terminal and its output
Get Problems from the current file
Uses the same retrieval mechanism as @Codebase, but only on a single folder
Reference the most relevant snippets from your codebase
Reference any file in your current workspace
Reference the markdown converted contents of a given URL
Reference the currently open file
Reference the outline of your codebase
Reference the contents of all of your open files
Reference recent clipboard items
Reference the architecture and platform of your current operating system