aboutsummaryrefslogtreecommitdiff
path: root/claude-templates
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-05-18 22:33:40 -0400
committerCraig Jennings <c@cjennings.net>2026-05-18 22:33:40 -0400
commit3e46a6fa95e0518f837c2f5e3ee601d84ddc666a (patch)
tree712e2af96bf4fd4b3247e2c6a1fa07b1901d595d /claude-templates
parent049a9f8ac380df39cac285032cf1fedcb6f566bf (diff)
downloadrulesets-3e46a6fa95e0518f837c2f5e3ee601d84ddc666a.tar.gz
rulesets-3e46a6fa95e0518f837c2f5e3ee601d84ddc666a.zip
feat(rules): working-files convention for in-progress task artifacts
I added claude-rules/working-files.md as the canonical convention. In-progress task artifacts live in working/<task-slug>/ under the project root. On task completion the files get renamed individually with a YYYY-MM-DD-<slug>-<descriptor> shape and moved flat into assets/ (or the area-specific assets/). Never rename the directory as a substitute for filing, since that loses the flat-searchable property of assets/. claude-templates/.ai/protocols.org gained a short reference to the rule so it propagates to every project's .ai/protocols.org on the next startup rsync.
Diffstat (limited to 'claude-templates')
-rw-r--r--claude-templates/.ai/protocols.org12
1 files changed, 12 insertions, 0 deletions
diff --git a/claude-templates/.ai/protocols.org b/claude-templates/.ai/protocols.org
index 30b0274..57ebf87 100644
--- a/claude-templates/.ai/protocols.org
+++ b/claude-templates/.ai/protocols.org
@@ -158,6 +158,18 @@ Each project's =.ai/= is the scope boundary: =protocols.org=, =session-context.o
Canonical rule: =~/code/rulesets/claude-rules/cross-project.md=.
+** Working-Files Convention — =working/<task-slug>/= for In-Progress Artifacts
+
+Every in-progress task that produces files (drafts, source documents, diagrams, scripts, sub-deliverables) gets a dedicated subdirectory under =<project-root>/working/=, named after the task. All artifacts for that task live in that subdirectory until the task is marked done.
+
+When the task ships, files are **renamed individually** (standard form: =YYYY-MM-DD-<task-slug>-<descriptor>.<ext>=) and **moved flat** into the appropriate permanent home (typically =assets/= or an area-specific =<area>/assets/=). The working subdirectory is then empty and gets deleted.
+
+***Never rename the directory itself as a substitute for filing.*** The point is to keep =assets/= flat-searchable — a nested =assets/old-tech-deck-2026/slide.png= is harder to find than =assets/2026-05-18-tech-deck-vol2-slide-04-diagram.png=.
+
+When the user starts a new task that will produce file artifacts, propose the =working/<task-slug>/= path before creating any files. Add or update the inbound link in =todo.org= to point at the working dir. When the user marks the task done, list every file, propose renames + permanent homes, move flat after confirmation, delete the empty subdir, update inbound links.
+
+Canonical rule: =~/code/rulesets/claude-rules/working-files.md=.
+
* Important Terminology
** "Let's run the [X] workflow" vs "I want to create an [X] workflow"