Propose additions to project CLAUDE.md based on session learnings
67
55%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./plugins/claude-code-dev/skills/propose-project-learning/SKILL.mdRetrospect on the current session and propose learnings for the project's CLAUDE.md.
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.
/propose-project-learning # Analyze and propose learnings
/propose-project-learning --save # Save proposal to ~/.claude/learnings/| 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 |
When the user runs this command:
Review the conversation history for:
Read the project's CLAUDE.md (if exists) to avoid duplicates:
cat CLAUDE.md 2>/dev/null || echo "No CLAUDE.md found"Also check for CLAUDE.local.md:
cat CLAUDE.local.md 2>/dev/nullFormat the proposal as:
# 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 styleIf --save is provided:
Ensure directory exists:
mkdir -p ~/.claude/learnings/projects/{project-slug}/proposals/Save proposal with timestamp:
# File: ~/.claude/learnings/projects/{project-slug}/proposals/learning-{timestamp}.mdConfirm:
Proposal saved to ~/.claude/learnings/projects/{project-slug}/proposals/learning-2026-01-09.md
Review later with: cat ~/.claude/learnings/projects/{project-slug}/proposals/Next steps:
[1] Add to CLAUDE.md now (I'll help edit)
[2] Save for later (/propose-project-learning --save)
[3] Dismiss
Select option: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 |
- API responses use `{"data": ..., "error": null}` wrapper format
- All Django models inherit from `BaseModel` in `core.models`
- Use `ruff` for linting, not `flake8`- Write clean code
- Follow PEP 8
- Use meaningful variable names/propose-forge-improvement which targets Product Forge itself0ebe7ae
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.