propose-project-learning
Propose additions to project CLAUDE.md based on session learnings
Best use case
propose-project-learning is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Propose additions to project CLAUDE.md based on session learnings
Teams using propose-project-learning should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/propose-project-learning/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How propose-project-learning Compares
| Feature / Agent | propose-project-learning | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Propose additions to project CLAUDE.md based on session learnings
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Propose Project Learning
Retrospect on the current session and propose learnings for the project's CLAUDE.md.
## Purpose
After working on a project, identify patterns, conventions, preferences, and rules that should be documented in the project's CLAUDE.md to improve future sessions.
## Usage
```bash
/propose-project-learning # Analyze and propose learnings
/propose-project-learning --save # Save proposal to ~/.claude/learnings/
```
## What This Captures
| Category | Examples |
|----------|----------|
| **Code conventions** | Naming patterns, file organization, import ordering |
| **Architecture decisions** | Preferred patterns, avoided anti-patterns |
| **Tool preferences** | Test frameworks, linters, formatters |
| **Project-specific rules** | Business logic constraints, domain terminology |
| **Workflow preferences** | Commit style, PR conventions, review process |
## Execution Instructions
When the user runs this command:
### 1. Analyze Current Session
Review the conversation history for:
- **Corrections made** - When the user corrected Claude's approach
- **Explicit preferences** - "Always use X", "Never do Y", "Prefer Z"
- **Repeated patterns** - Consistent choices across multiple files
- **Project conventions** - Naming, structure, organization patterns
- **Tool/framework specifics** - Project-specific configurations or usage
### 2. Check Existing CLAUDE.md
Read the project's CLAUDE.md (if exists) to avoid duplicates:
```bash
cat CLAUDE.md 2>/dev/null || echo "No CLAUDE.md found"
```
Also check for CLAUDE.local.md:
```bash
cat CLAUDE.local.md 2>/dev/null
```
### 3. Generate Proposal
Format the proposal as:
```markdown
# Proposed Learnings for CLAUDE.md
Based on this session, consider adding these to your project's CLAUDE.md:
## Code Conventions
- Use `snake_case` for all Python function names
- Prefer dataclasses over plain dicts for structured data
## Architecture
- All API endpoints go through the service layer, never direct DB access
- Use repository pattern for database operations
## Testing
- Use pytest fixtures, not setUp/tearDown methods
- Mock external services at the client level, not individual methods
## Project-Specific
- The `core` module should have no dependencies on other app modules
- All dates are stored as UTC, converted to local time only in templates
---
To add these to your CLAUDE.md:
1. Review each suggestion
2. Copy relevant items to CLAUDE.md
3. Adjust wording to match your style
```
### 4. Handle --save Flag
If `--save` is provided:
1. **Ensure directory exists**:
```bash
mkdir -p ~/.claude/learnings/projects/{project-slug}/proposals/
```
2. **Save proposal** with timestamp:
```bash
# File: ~/.claude/learnings/projects/{project-slug}/proposals/learning-{timestamp}.md
```
3. **Confirm**:
```
Proposal saved to ~/.claude/learnings/projects/{project-slug}/proposals/learning-2026-01-09.md
Review later with: cat ~/.claude/learnings/projects/{project-slug}/proposals/
```
### 5. Offer Next Steps
```
Next steps:
[1] Add to CLAUDE.md now (I'll help edit)
[2] Save for later (/propose-project-learning --save)
[3] Dismiss
Select option:
```
## Quality Criteria
Only propose learnings that are:
| Criterion | Description |
|-----------|-------------|
| **Specific** | Concrete rules, not vague guidelines |
| **Actionable** | Claude can follow them in future sessions |
| **Project-relevant** | Not general best practices already known |
| **Validated** | Based on actual session behavior, not assumptions |
## Examples
### Good Learnings
```markdown
- API responses use `{"data": ..., "error": null}` wrapper format
- All Django models inherit from `BaseModel` in `core.models`
- Use `ruff` for linting, not `flake8`
```
### Poor Learnings (Too Generic)
```markdown
- Write clean code
- Follow PEP 8
- Use meaningful variable names
```
## Notes
- This command analyzes the current session context
- Works best after substantial implementation work
- Complements `/propose-forge-improvement` which targets Product Forge itself
- Learnings are project-specific, not globalRelated Skills
django-project-setup
Set up a new Django 6.0 project with modern tooling (uv, direnv, HTMX, OAuth, DRF, testing). Use when the user wants to create a Django project from scratch with production-ready configuration.
propose-forge-improvement
Propose improvements or new components for Product Forge
zod
Zod schema validation patterns and type inference. Auto-loads when validating schemas, parsing data, validating forms, checking types at runtime, or using z.object/z.string/z.infer in TypeScript.
typescript-import-style
Merge-friendly import formatting (one-per-line, alphabetical). Auto-loads when writing TypeScript/JavaScript imports to minimize merge conflicts in parallel development. Enforces consistent grouping and sorting.
setup-mcp-auth
Configure authentication for an existing FastMCP server
fastmcp
FastMCP TypeScript framework patterns for MCP servers. Auto-loads when building MCP servers, creating tools/resources/prompts, implementing authentication, configuring transports, or working with FastMCP in TypeScript.
add-mcp-tool
Add a new tool to an existing FastMCP server with guided configuration
add-mcp-resource
Add a new resource or resource template to an existing FastMCP server
plan-with-team
Validate plan file ownership
privacy-compliance
GDPR, CCPA, and privacy compliance guidance for data protection. Use when handling personal data, implementing consent management, or ensuring regulatory compliance across jurisdictions.
oauth
OAuth 2.0 and OpenID Connect implementation patterns. Use when implementing authentication, authorization flows, or integrating with OAuth providers like Google, GitHub, or custom identity providers.
mcp-security
Use when securing MCP servers, preventing prompt injection, implementing authorization, validating user input, or building secure multi-agent pipelines. Provides 5-layer defense architecture patterns.