225 lines
6.9 KiB
Markdown
225 lines
6.9 KiB
Markdown
# File Placement Guide - Where to Save Files
|
|
|
|
**Purpose:** Ensure all new files are saved to appropriate project/client folders
|
|
**Last Updated:** 2026-01-20
|
|
|
|
---
|
|
|
|
## Quick Reference
|
|
|
|
| File Type | Example | Save To |
|
|
|-----------|---------|---------|
|
|
| DOS Batch Files | `*.BAT` | `projects/dataforth-dos/batch-files/` |
|
|
| DOS Deployment Scripts | `deploy-*.ps1`, `fix-*.ps1` | `projects/dataforth-dos/deployment-scripts/` |
|
|
| DOS Documentation | `DOS_*.md` | `projects/dataforth-dos/documentation/` |
|
|
| DOS Session Logs | Session notes | `projects/dataforth-dos/session-logs/` |
|
|
| Client Info | Client details | `clients/[client-name]/CLIENT_INFO.md` |
|
|
| Client Session Logs | Support notes | `clients/[client-name]/session-logs/` |
|
|
| ClaudeTools API Code | `*.py`, migrations | `api/`, `migrations/` (keep existing structure) |
|
|
| ClaudeTools API Logs | Session notes | `projects/claudetools-api/session-logs/` |
|
|
| General Session Logs | Mixed work | `session-logs/YYYY-MM-DD-session.md` |
|
|
| Credentials | All credentials | `credentials.md` (root - shared) |
|
|
|
|
---
|
|
|
|
## Rules for New Files
|
|
|
|
### 1. Determine Context First
|
|
|
|
**Ask yourself:** What project or client is this related to?
|
|
- Dataforth DOS → `projects/dataforth-dos/`
|
|
- ClaudeTools API → `projects/claudetools-api/` or root API folders
|
|
- Specific Client → `clients/[client-name]/`
|
|
- Multiple projects → Root or `session-logs/`
|
|
|
|
### 2. Choose Appropriate Subfolder
|
|
|
|
**Within project folder:**
|
|
```
|
|
projects/[project-name]/
|
|
├── batch-files/ # .BAT files (DOS only)
|
|
├── scripts/ # .ps1, .sh, .py scripts
|
|
├── deployment-scripts/ # Deployment-specific scripts (DOS)
|
|
├── documentation/ # .md documentation files
|
|
├── session-logs/ # Daily session logs
|
|
└── [custom-folders]/ # Project-specific folders
|
|
```
|
|
|
|
**Within client folder:**
|
|
```
|
|
clients/[client-name]/
|
|
├── CLIENT_INFO.md # Master client information
|
|
├── session-logs/ # Support session logs
|
|
├── documentation/ # Client-specific docs
|
|
└── [custom-folders]/ # Client-specific folders
|
|
```
|
|
|
|
### 3. Naming Conventions
|
|
|
|
**Session Logs:**
|
|
- Format: `YYYY-MM-DD-session.md`
|
|
- Location: `projects/[project]/session-logs/` or `clients/[client]/session-logs/`
|
|
|
|
**Documentation:**
|
|
- Descriptive names: `DOS_FIX_SUMMARY.md`, `DEPLOYMENT_GUIDE.md`
|
|
- Location: `projects/[project]/documentation/`
|
|
|
|
**Scripts:**
|
|
- Descriptive names: `deploy-to-nas.ps1`, `fix-xcopy-error.ps1`
|
|
- Location: `projects/[project]/deployment-scripts/` or `projects/[project]/scripts/`
|
|
|
|
**Batch Files (DOS):**
|
|
- Uppercase: `NWTOC.BAT`, `UPDATE.BAT`
|
|
- Location: `projects/dataforth-dos/batch-files/`
|
|
|
|
---
|
|
|
|
## Examples by Scenario
|
|
|
|
### Scenario 1: Working on Dataforth DOS Bug Fix
|
|
|
|
**Files Created:**
|
|
- `NWTOC.BAT` (modified) → `projects/dataforth-dos/batch-files/NWTOC.BAT`
|
|
- `deploy-nwtoc-fix.ps1` → `projects/dataforth-dos/deployment-scripts/deploy-nwtoc-fix.ps1`
|
|
- `NWTOC_FIX_2026-01-20.md` → `projects/dataforth-dos/documentation/NWTOC_FIX_2026-01-20.md`
|
|
- Session log → `projects/dataforth-dos/session-logs/2026-01-20-session.md`
|
|
|
|
### Scenario 2: Helping Horseshoe Management Client
|
|
|
|
**Files Created:**
|
|
- Update client info → `clients/horseshoe-management/CLIENT_INFO.md`
|
|
- Session log → `clients/horseshoe-management/session-logs/2026-01-20-session.md`
|
|
- Fix script (if created) → `clients/horseshoe-management/scripts/fix-glance.ps1`
|
|
|
|
### Scenario 3: Adding ClaudeTools API Endpoint
|
|
|
|
**Files Created:**
|
|
- New router → `api/routers/new_endpoint.py` (existing structure)
|
|
- Migration → `migrations/versions/xxx_add_table.py` (existing structure)
|
|
- Session log → `projects/claudetools-api/session-logs/2026-01-20-session.md`
|
|
- API docs → `projects/claudetools-api/documentation/NEW_ENDPOINT.md`
|
|
|
|
### Scenario 4: Mixed Work (Multiple Projects)
|
|
|
|
**Files Created:**
|
|
- Session log → `session-logs/2026-01-20-session.md` (root)
|
|
- Reference all projects worked on in the log
|
|
- Project-specific files still go to project folders
|
|
|
|
---
|
|
|
|
## Automatic File Placement Checklist
|
|
|
|
Before saving a file, ask:
|
|
|
|
1. **Is this project-specific?**
|
|
- YES → Save to `projects/[project-name]/[appropriate-subfolder]/`
|
|
- NO → Continue to next question
|
|
|
|
2. **Is this client-specific?**
|
|
- YES → Save to `clients/[client-name]/[appropriate-subfolder]/`
|
|
- NO → Continue to next question
|
|
|
|
3. **Is this a session log?**
|
|
- Project-specific work → `projects/[project]/session-logs/`
|
|
- Client-specific work → `clients/[client]/session-logs/`
|
|
- Mixed/general work → `session-logs/` (root)
|
|
|
|
4. **Is this shared infrastructure (credentials, main configs)?**
|
|
- YES → Save to root (e.g., `credentials.md`, `SESSION_STATE.md`)
|
|
- NO → Reevaluate context
|
|
|
|
5. **Is this core ClaudeTools API code?**
|
|
- YES → Use existing structure (`api/`, `migrations/`, etc.)
|
|
- NO → Project folder
|
|
|
|
---
|
|
|
|
## When to Update Index Files
|
|
|
|
**After creating new files, update:**
|
|
|
|
1. **Project Index:**
|
|
- `projects/[project-name]/PROJECT_INDEX.md`
|
|
- Add new files to relevant sections
|
|
- Update file counts
|
|
- Update "Last Updated" date
|
|
|
|
2. **Client Info:**
|
|
- `clients/[client-name]/CLIENT_INFO.md`
|
|
- Add new issues/resolutions
|
|
- Update "Last Contact" date
|
|
|
|
3. **Master Organization:**
|
|
- `PROJECT_ORGANIZATION.md` (only for major changes)
|
|
- Update file counts quarterly or after major restructuring
|
|
|
|
---
|
|
|
|
## Special Cases
|
|
|
|
### Temporary/Test Files
|
|
- Keep in root temporarily
|
|
- Move to appropriate folder once work is confirmed
|
|
- Delete if no longer needed
|
|
|
|
### Shared Utilities/Scripts
|
|
- If used across multiple projects → `scripts/` (root)
|
|
- If project-specific → `projects/[project]/scripts/`
|
|
|
|
### Documentation That Spans Projects
|
|
- Create in most relevant project folder
|
|
- Reference from other project indexes
|
|
- Or save to root `documentation/` if truly cross-project
|
|
|
|
### Archived Projects
|
|
- Move to `projects/[project-name]-archived/`
|
|
- Update PROJECT_ORGANIZATION.md
|
|
|
|
---
|
|
|
|
## Enforcement
|
|
|
|
**When using `/save` command:**
|
|
- Automatically determine correct session-logs/ location
|
|
- Remind user of file placement rules
|
|
- Update relevant index files
|
|
|
|
**During code review:**
|
|
- Check file placement
|
|
- Verify project/client organization
|
|
- Ensure indexes are updated
|
|
|
|
**Monthly maintenance:**
|
|
- Review root directory for misplaced files
|
|
- Move files to correct locations
|
|
- Update all index files
|
|
|
|
---
|
|
|
|
## Quick Commands
|
|
|
|
**Create new project:**
|
|
```bash
|
|
mkdir -p projects/[project-name]/{scripts,documentation,session-logs}
|
|
cp PROJECT_INDEX_TEMPLATE.md projects/[project-name]/PROJECT_INDEX.md
|
|
```
|
|
|
|
**Create new client:**
|
|
```bash
|
|
mkdir -p clients/[client-name]/session-logs
|
|
cp CLIENT_INFO_TEMPLATE.md clients/[client-name]/CLIENT_INFO.md
|
|
```
|
|
|
|
**Find misplaced files:**
|
|
```bash
|
|
# Files that should be in project folders
|
|
ls -1 *.BAT *.ps1 *FIX*.md *DEPLOY*.md | grep -v projects/
|
|
```
|
|
|
|
---
|
|
|
|
**Remember:** Good organization now saves hours of searching later!
|
|
|
|
**Context Recovery Depends On:** Files being in predictable, consistent locations!
|