aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.ai/protocols.org3
-rw-r--r--.ai/workflows/startup.org1
-rw-r--r--claude-templates/.ai/protocols.org3
-rw-r--r--claude-templates/.ai/workflows/startup.org1
4 files changed, 6 insertions, 2 deletions
diff --git a/.ai/protocols.org b/.ai/protocols.org
index e4e1310..c709010 100644
--- a/.ai/protocols.org
+++ b/.ai/protocols.org
@@ -42,7 +42,8 @@ Every file and directory has a defined purpose:
| =sessions/= | Archived session files (one per session) — =YYYY-MM-DD-HH-MM-description.org= |
| =workflows/= | Template workflows (synced from claude-templates, never edit in project) |
| =project-workflows/= | Project-specific workflows (never touched by sync) |
-| =scripts/= | Template scripts |
+| =scripts/= | Template scripts (synced from claude-templates, never edit in project) |
+| =project-scripts/= | Project-specific scripts (never touched by sync; mirrors =project-workflows/=) |
| =someday-maybe.org= | Project ideas backlog |
** =docs/= (visible, real project documentation)
diff --git a/.ai/workflows/startup.org b/.ai/workflows/startup.org
index 2371d11..64eb172 100644
--- a/.ai/workflows/startup.org
+++ b/.ai/workflows/startup.org
@@ -110,6 +110,7 @@ Notes on the rsync commands:
- Trailing slashes on both source and destination matter — they tell rsync to sync /contents/ rather than nest a directory inside.
- =--delete= on the directory syncs lets retired template files actually disappear from each project on next startup.
- protocols.org is a single file, no =--delete= needed.
+- The sync touches only =protocols.org=, =workflows/=, and =scripts/=. The project-owned dirs =project-workflows/= and =project-scripts/= are deliberately *outside* the synced set, so a project's own workflows and scripts survive startup. This is why a project script that a workflow imports must live in =.ai/project-scripts/=, never =.ai/scripts/= — the latter is wiped to match the template by =--delete= on every startup. Naming: a script imported as a Python module needs an importable name (underscores, e.g. =zlibrary_api.py=); a CLI-invoked script can stay kebab-case like the template tooling (=cmail-action.py=).
Rationale: Every call in Phase A is read-only or writes to a distinct path. Running them sequentially wastes round-trips; running them in parallel gives Claude the complete starting picture in one round-trip.
diff --git a/claude-templates/.ai/protocols.org b/claude-templates/.ai/protocols.org
index e4e1310..c709010 100644
--- a/claude-templates/.ai/protocols.org
+++ b/claude-templates/.ai/protocols.org
@@ -42,7 +42,8 @@ Every file and directory has a defined purpose:
| =sessions/= | Archived session files (one per session) — =YYYY-MM-DD-HH-MM-description.org= |
| =workflows/= | Template workflows (synced from claude-templates, never edit in project) |
| =project-workflows/= | Project-specific workflows (never touched by sync) |
-| =scripts/= | Template scripts |
+| =scripts/= | Template scripts (synced from claude-templates, never edit in project) |
+| =project-scripts/= | Project-specific scripts (never touched by sync; mirrors =project-workflows/=) |
| =someday-maybe.org= | Project ideas backlog |
** =docs/= (visible, real project documentation)
diff --git a/claude-templates/.ai/workflows/startup.org b/claude-templates/.ai/workflows/startup.org
index 2371d11..64eb172 100644
--- a/claude-templates/.ai/workflows/startup.org
+++ b/claude-templates/.ai/workflows/startup.org
@@ -110,6 +110,7 @@ Notes on the rsync commands:
- Trailing slashes on both source and destination matter — they tell rsync to sync /contents/ rather than nest a directory inside.
- =--delete= on the directory syncs lets retired template files actually disappear from each project on next startup.
- protocols.org is a single file, no =--delete= needed.
+- The sync touches only =protocols.org=, =workflows/=, and =scripts/=. The project-owned dirs =project-workflows/= and =project-scripts/= are deliberately *outside* the synced set, so a project's own workflows and scripts survive startup. This is why a project script that a workflow imports must live in =.ai/project-scripts/=, never =.ai/scripts/= — the latter is wiped to match the template by =--delete= on every startup. Naming: a script imported as a Python module needs an importable name (underscores, e.g. =zlibrary_api.py=); a CLI-invoked script can stay kebab-case like the template tooling (=cmail-action.py=).
Rationale: Every call in Phase A is read-only or writes to a distinct path. Running them sequentially wastes round-trips; running them in parallel gives Claude the complete starting picture in one round-trip.