This folder is for local development experiments and analysis that should NOT be committed to the repository.
What's tracked: Only this README (provides guidelines for everyone) What's not tracked: Everything else you create here (your local workspace)
As you work on the project, you might create:
- Investigation notes -
issue_388_analysis.md,bug_investigation.md - Draft release notes -
v4.2.0_draft.md,changelog_notes.md - Test coverage analysis -
test_decisions.md,regression_notes.md - Experimental code -
test_script.py,proof_of_concept.sql - Configuration files - Local test setups, temporary configs
- Working notes - Personal TODO lists, design sketches
All of these stay local - they're automatically ignored by git.
Very rarely, if you create something with lasting value for all developers, it might get committed:
- Consolidated release summaries
- Test coverage references (explaining what tests protect)
- Strategic decision documents (explaining "why" for the future)
But this is the exception, not the rule. Default: everything stays local.
- Local analysis documents - Investigation notes, problem analysis
- Experimental code - Test scripts, proof-of-concepts
- Temporary configurations - Local test setups
- Working notes - Personal development documentation
- Release preparation - Draft release notes, change summaries
- Point-in-time updates - Dated working notes
- Multiple versions - Iterative analysis files (consolidate before commit)
- Personal experiments - Keep in your local context
- Temporary test files - Unless they become permanent tests
Only commit files from this folder if they provide lasting value to the project:
- ✅ Consolidated release summaries (e.g.,
COMPREHENSIVE_4.2.0_RELEASE_NOTES.md) - ✅ Test coverage references (documenting regression protection)
- ✅ Strategic decision documents (explaining "why" for future developers)
- ✅ Reusable test configurations (if applicable to all developers)
- ❌ Dated working notes (
ANALYSIS_2025-11-15.md) - ❌ Multiple versions of the same analysis
- ❌ Personal TODO lists
- ❌ Iterative problem-solving documents
- ❌ Temporary test scripts
- Consolidate - Merge multiple analysis files into one comprehensive document
- Remove dates - Make content timeless, not point-in-time
- Focus on "why" - Document decisions and rationale, not just "what"
- Check relevance - Will this help future developers?
❌ Bad (Don't Commit):
experiments/
├── issue_388_analysis_v1.md
├── issue_388_analysis_v2.md
├── issue_388_final.md
├── PASSPHRASE_FIX_2025-11-15.md
├── TODO_review.md
└── my_local_test.sh
✅ Good (Can Commit):
experiments/
├── COMPREHENSIVE_4.2.0_RELEASE_NOTES.md # Consolidated, timeless
├── TEST_COVERAGE_REFERENCE.md # Lasting value for regression protection
└── README.md # This guide
- Create analysis files freely in
experiments/ - Iterate, revise, create multiple versions
- Keep everything local
- Consolidate multiple files into comprehensive summaries
- Remove dates and make content timeless
- Focus on decisions, not just actions
- Create reference documents for regression protection
- Clean up local experiments folder
- Archive or delete temporary analysis files
- Keep only what has lasting value
The .gitignore is configured to:
- Ignore everything in experiments/ folder
- Except this README.md
# Experiments folder - track the folder but not its contents (maintainer workspace)
experiments/*
!experiments/README.mdThis means:
- ✅ Everything you create in experiments/ stays local automatically
- ✅ No accidental commits - git will ignore your local files
- ✅ Freedom to experiment - create as many files as you want
- ✅ Only README tracked - provides guidelines for everyone
In the rare case something should be committed from experiments/, discuss with maintainers first and update .gitignore to allow that specific file.
- ✅ Freedom to experiment - Create as many working files as needed locally
- ✅ Clean repository - No point-in-time clutter in git history
- ✅ Valuable documentation - Only lasting-value content in repo
- ✅ Local context - Each developer can work their own way
- ❌ Committing every analysis iteration
- ❌ Point-in-time notes in git history
- ❌ Multiple versions of the same document
- ❌ Working notes that become obsolete
If you're contributing to schemachange:
- Use
experiments/freely for your local development - Don't commit your experiments unless they provide lasting value
- Consolidate before considering any commit from this folder
- Ask yourself: "Will this help someone 6 months from now?"
When you see PRs with experiments/ content:
- ✅ Is it consolidated (not multiple versions)?
- ✅ Is it timeless (not dated/point-in-time)?
- ✅ Does it document "why" (not just "what")?
- ✅ Will it help future developers?
- Request consolidation
- Request removal of dates
- Request focus on lasting value
- Or suggest keeping it local
# During development (local only):
experiments/
├── issue_388_investigation.md
├── issue_388_v2.md
├── issue_388_final_fix.md
├── test_coverage_notes.md
└── my_analysis.md
# Before release (consolidate, then commit):
experiments/
└── COMPREHENSIVE_4.2.0_RELEASE_NOTES.md ← Commit this
# Document what tests protect (lasting value):
experiments/
└── TEST_COVERAGE_REFERENCE.md ← Helps prevent regressions
# Document "why" for future:
experiments/
└── CONFIGURATION_STRATEGY.md ← Explains why we do things this way
- This folder is your local scratch space - experiment freely
- Everything you create stays local (except this README)
- Git automatically ignores your files here
- If something becomes valuable for all developers - discuss with maintainers first
Just cloned the repo?
- You'll only see this README
- Create your own analysis files as needed
- They'll automatically stay local (not in git)
- Work freely without worrying about commits
Working on a release?
- Create draft notes and analysis files here
- Iterate as much as you want
- Before release: if valuable, consolidate and discuss with maintainers
- Most of your work will stay local - that's intentional
Created something valuable?
- Consolidate multiple iterations into one document
- Make it timeless (no dates, no point-in-time references)
- Focus on "why" decisions were made
- Discuss with maintainers before committing
The .cursor/rules/06-experiments-folder.md file enforces these guidelines:
- Prevents accidental point-in-time commits
- Reminds you to keep things local
- Guides you toward valuable documentation when appropriate
Questions? Discuss with maintainers before committing anything from experiments/.