{"slug": "three-destinations-for-44-projects-how-i-organize-my-code-files-and-notes", "title": "Three destinations for 44 projects: how I organize my code, files and notes", "summary": "A developer described reorganizing 44 real projects — four times the 11 previously declared — into three destinations: GitHub for code, OneDrive for binaries and Obsidian for knowledge. The system, enforced through Claude Code's global instructions file, adds an intake airlock folder, three-way version bumping across package.json, pubspec.yaml, pyproject.toml and composer.json, a per-project pilotage/ folder with eight tracking documents, and written read-only limits on the coding agent with explicit exceptions for version bumps and tracking files.", "body_md": "My inventory counted 44 real projects against 11 declared. Today I sort everything into three destinations: GitHub for code, OneDrive for binaries, Obsidian for knowledge. On top of that sit a sorting airlock, a version kept in three places, one `pilotage/` folder per project and written limits for my coding agent.\n\nMy underlying problem fits in one sentence: I create more projects than I close. The inventory produced these numbers:\n\nReality was four times what I had declared, and half of the projects had no backup. The rules below live in Claude Code's global instructions file. They apply whichever folder I launch the agent from.\n\nEvery file has a single place, set by its nature:\n\nOneDrive holds about 300 GB in files-on-demand mode, and that mode is deliberate. I treat it as a destination, not as something to sort: I don't scan it and I don't pull it back in bulk. I also check that a file isn't already there before copying it, because I already have duplicates.\n\nFour prohibitions protect this split:\n\n`.git` during editing, and GitHub already covers that need.`.gitignore` keeps it out.\nI also back up branch by branch, never in one block. Turning on OneDrive sync for my entire workspace would pull the code and the vault in with a single setting, so that option stays forbidden.\n\nMy development folder splits into three segments:\n\nOn GitHub, each repository name starts with its segment's prefix. A topic gives its status: `actif` (active), `dormant` or `archive`. All client repositories are private, without exception.\n\nNothing enters the development folder or the vault directly. An incoming item, whether from OneDrive, a clone or a transfer, first goes through an airlock folder, where I sort it before filing it.\n\nA regenerable folder has no place in a repository or an archive. Here is my full exclusion list:\n\n```\nnode_modules  .next  .nuxt  dist  build  out  .output\ntarget  vendor  .venv  venv  __pycache__  .dart_tool\n.gradle  Pods  DerivedData  .terraform  coverage\n.cache  .turbo  bin  obj\n```\n\nA versioned project carries its number in three places that must always agree:\n\n`package.json`, `pubspec.yaml`, `pyproject.toml` or `composer.json`.` v`.\nA Claude Code skill updates all three at once. Semver is strict, and conventional commits set the version level.\n\nI made this bump proactive on August 20, 2026, because forgetting it had become the norm. As soon as a committed batch contains at least one `feat` or `fix`, the agent bumps without waiting for me to ask. It then stops and displays the push command. A dependency upgrade, through Renovate or `npm update`, triggers no project version.\n\nEvery dev project must keep a `pilotage/` folder (French for \"steering\") with eight documents: roadmap, todo, done, work-log, pending-decision, decisions, bugs and quality-checklist. The `docs/CONTEXT.md` file remains the short entry point and links to this folder.\n\nBefore acting, the agent reads this state, then checks `git status` and `git log`. If the folder is missing, it offers to set it up. A new project gets one from the start.\n\nThree rules keep this tracking reliable:\n\n`done.md` without proof.`TASK-`, `BUG-` or `DEC-` are never used twice.\nThis tracking gets committed with the batch of work, and it doesn't reach GitHub without my approval.\n\nOn my projects and files, the agent works read-only by default. The bump and the pilotage folder are two deliberate write exceptions. The other limits are explicit:\n\n`git push`\nFor the other side of my workstation, I wrote separately about [how I set up my Mac](https://dimitriaigle.fr/articles/configurer-mac-dev-en).\n\nMy rules sort projects, they don't close them, and this article announces no drop in these numbers. I keep this finding as a finding, not as a condition for creating anything: a 45th project remains possible. It will get a prefix, a status topic and its `pilotage/` folder.", "url": "https://wpnews.pro/news/three-destinations-for-44-projects-how-i-organize-my-code-files-and-notes", "canonical_source": "https://dev.to/dimsbuild/three-destinations-for-44-projects-how-i-organize-my-code-files-and-notes-2d1l", "published_at": "2026-11-13 23:15:07+00:00", "updated_at": "2026-11-13 23:21:16.126207+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "developer-tools"], "entities": ["GitHub", "OneDrive", "Obsidian", "Claude Code", "Renovate"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/three-destinations-for-44-projects-how-i-organize-my-code-files-and-notes", "markdown": "https://wpnews.pro/news/three-destinations-for-44-projects-how-i-organize-my-code-files-and-notes.md", "text": "https://wpnews.pro/news/three-destinations-for-44-projects-how-i-organize-my-code-files-and-notes.txt", "jsonld": "https://wpnews.pro/news/three-destinations-for-44-projects-how-i-organize-my-code-files-and-notes.jsonld"}}