safeword 0.2.3 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/commands/arch-review.md +32 -0
- package/.claude/commands/lint.md +6 -0
- package/.claude/commands/quality-review.md +13 -0
- package/.claude/commands/setup-linting.md +6 -0
- package/.claude/hooks/auto-lint.sh +6 -0
- package/.claude/hooks/auto-quality-review.sh +170 -0
- package/.claude/hooks/check-linting-sync.sh +17 -0
- package/.claude/hooks/inject-timestamp.sh +6 -0
- package/.claude/hooks/question-protocol.sh +12 -0
- package/.claude/hooks/run-linters.sh +8 -0
- package/.claude/hooks/run-quality-review.sh +76 -0
- package/.claude/hooks/version-check.sh +10 -0
- package/.claude/mcp/README.md +96 -0
- package/.claude/mcp/arcade.sample.json +9 -0
- package/.claude/mcp/context7.sample.json +7 -0
- package/.claude/mcp/playwright.sample.json +7 -0
- package/.claude/settings.json +62 -0
- package/.claude/skills/quality-reviewer/SKILL.md +190 -0
- package/.claude/skills/safeword-quality-reviewer/SKILL.md +13 -0
- package/.env.arcade.example +4 -0
- package/.env.example +11 -0
- package/.gitmodules +4 -0
- package/.safeword/SAFEWORD.md +33 -0
- package/.safeword/eslint/eslint-base.mjs +101 -0
- package/.safeword/guides/architecture-guide.md +404 -0
- package/.safeword/guides/code-philosophy.md +174 -0
- package/.safeword/guides/context-files-guide.md +405 -0
- package/.safeword/guides/data-architecture-guide.md +183 -0
- package/.safeword/guides/design-doc-guide.md +165 -0
- package/.safeword/guides/learning-extraction.md +515 -0
- package/.safeword/guides/llm-instruction-design.md +239 -0
- package/.safeword/guides/llm-prompting.md +95 -0
- package/.safeword/guides/tdd-best-practices.md +570 -0
- package/.safeword/guides/test-definitions-guide.md +243 -0
- package/.safeword/guides/testing-methodology.md +573 -0
- package/.safeword/guides/user-story-guide.md +237 -0
- package/.safeword/guides/zombie-process-cleanup.md +214 -0
- package/{templates → .safeword}/hooks/agents-md-check.sh +0 -0
- package/{templates → .safeword}/hooks/post-tool.sh +0 -0
- package/{templates → .safeword}/hooks/pre-commit.sh +0 -0
- package/.safeword/planning/002-user-story-quality-evaluation.md +1840 -0
- package/.safeword/planning/003-langsmith-eval-setup-prompt.md +363 -0
- package/.safeword/planning/004-llm-eval-test-cases.md +3226 -0
- package/.safeword/planning/005-architecture-enforcement-system.md +169 -0
- package/.safeword/planning/006-reactive-fix-prevention-research.md +135 -0
- package/.safeword/planning/011-cli-ux-vision.md +330 -0
- package/.safeword/planning/012-project-structure-cleanup.md +154 -0
- package/.safeword/planning/README.md +39 -0
- package/.safeword/planning/automation-plan-v2.md +1225 -0
- package/.safeword/planning/automation-plan-v3.md +1291 -0
- package/.safeword/planning/automation-plan.md +3058 -0
- package/.safeword/planning/design/005-cli-implementation.md +343 -0
- package/.safeword/planning/design/013-cli-self-contained-templates.md +596 -0
- package/.safeword/planning/design/013a-eslint-plugin-suite.md +256 -0
- package/.safeword/planning/design/013b-implementation-snippets.md +385 -0
- package/.safeword/planning/design/013c-config-isolation-strategy.md +242 -0
- package/.safeword/planning/design/code-philosophy-improvements.md +60 -0
- package/.safeword/planning/mcp-analysis.md +545 -0
- package/.safeword/planning/phase2-subagents-vs-skills-analysis.md +451 -0
- package/.safeword/planning/settings-improvements.md +970 -0
- package/.safeword/planning/test-definitions/005-cli-implementation.md +1301 -0
- package/.safeword/planning/test-definitions/cli-self-contained-templates.md +205 -0
- package/.safeword/planning/user-stories/001-guides-review-user-stories.md +1381 -0
- package/.safeword/planning/user-stories/003-reactive-fix-prevention.md +132 -0
- package/.safeword/planning/user-stories/004-technical-constraints.md +86 -0
- package/.safeword/planning/user-stories/005-cli-implementation.md +311 -0
- package/.safeword/planning/user-stories/cli-self-contained-templates.md +172 -0
- package/.safeword/planning/versioned-distribution.md +740 -0
- package/.safeword/prompts/arch-review.md +43 -0
- package/.safeword/prompts/quality-review.md +11 -0
- package/.safeword/scripts/arch-review.sh +235 -0
- package/.safeword/scripts/check-linting-sync.sh +58 -0
- package/.safeword/scripts/setup-linting.sh +559 -0
- package/.safeword/templates/architecture-template.md +136 -0
- package/.safeword/templates/ci/architecture-check.yml +79 -0
- package/.safeword/templates/design-doc-template.md +127 -0
- package/.safeword/templates/test-definitions-feature.md +100 -0
- package/.safeword/templates/ticket-template.md +74 -0
- package/.safeword/templates/user-stories-template.md +82 -0
- package/.safeword/tickets/001-guides-review-user-stories.md +83 -0
- package/.safeword/tickets/002-architecture-enforcement.md +211 -0
- package/.safeword/tickets/003-reactive-fix-prevention.md +57 -0
- package/.safeword/tickets/004-technical-constraints-in-user-stories.md +39 -0
- package/.safeword/tickets/005-cli-implementation.md +248 -0
- package/.safeword/tickets/006-flesh-out-skills.md +43 -0
- package/.safeword/tickets/007-flesh-out-questioning.md +44 -0
- package/.safeword/tickets/008-upgrade-questioning.md +58 -0
- package/.safeword/tickets/009-naming-conventions.md +41 -0
- package/.safeword/tickets/010-safeword-md-cleanup.md +34 -0
- package/.safeword/tickets/011-cursor-setup.md +86 -0
- package/.safeword/tickets/README.md +73 -0
- package/.safeword/version +1 -0
- package/AGENTS.md +59 -0
- package/CLAUDE.md +12 -0
- package/README.md +347 -0
- package/docs/001-cli-implementation-plan.md +856 -0
- package/docs/elite-dx-implementation-plan.md +1034 -0
- package/framework/README.md +131 -0
- package/framework/mcp/README.md +96 -0
- package/framework/mcp/arcade.sample.json +8 -0
- package/framework/mcp/context7.sample.json +6 -0
- package/framework/mcp/playwright.sample.json +6 -0
- package/framework/scripts/arch-review.sh +235 -0
- package/framework/scripts/check-linting-sync.sh +58 -0
- package/framework/scripts/load-env.sh +49 -0
- package/framework/scripts/setup-claude.sh +223 -0
- package/framework/scripts/setup-linting.sh +559 -0
- package/framework/scripts/setup-quality.sh +477 -0
- package/framework/scripts/setup-safeword.sh +550 -0
- package/framework/templates/ci/architecture-check.yml +78 -0
- package/learnings/ai-sdk-v5-breaking-changes.md +178 -0
- package/learnings/e2e-test-zombie-processes.md +231 -0
- package/learnings/milkdown-crepe-editor-property.md +96 -0
- package/learnings/prosemirror-fragment-traversal.md +119 -0
- package/package.json +19 -43
- package/packages/cli/AGENTS.md +1 -0
- package/packages/cli/ARCHITECTURE.md +279 -0
- package/packages/cli/package.json +51 -0
- package/packages/cli/src/cli.ts +63 -0
- package/packages/cli/src/commands/check.ts +166 -0
- package/packages/cli/src/commands/diff.ts +209 -0
- package/packages/cli/src/commands/reset.ts +190 -0
- package/packages/cli/src/commands/setup.ts +325 -0
- package/packages/cli/src/commands/upgrade.ts +163 -0
- package/packages/cli/src/index.ts +3 -0
- package/packages/cli/src/templates/config.ts +58 -0
- package/packages/cli/src/templates/content.ts +18 -0
- package/packages/cli/src/templates/index.ts +12 -0
- package/packages/cli/src/utils/agents-md.ts +66 -0
- package/packages/cli/src/utils/fs.ts +179 -0
- package/packages/cli/src/utils/git.ts +124 -0
- package/packages/cli/src/utils/hooks.ts +29 -0
- package/packages/cli/src/utils/output.ts +60 -0
- package/packages/cli/src/utils/project-detector.test.ts +185 -0
- package/packages/cli/src/utils/project-detector.ts +44 -0
- package/packages/cli/src/utils/version.ts +28 -0
- package/packages/cli/src/version.ts +6 -0
- package/packages/cli/templates/SAFEWORD.md +776 -0
- package/packages/cli/templates/doc-templates/architecture-template.md +136 -0
- package/packages/cli/templates/doc-templates/design-doc-template.md +134 -0
- package/packages/cli/templates/doc-templates/test-definitions-feature.md +131 -0
- package/packages/cli/templates/doc-templates/ticket-template.md +82 -0
- package/packages/cli/templates/doc-templates/user-stories-template.md +92 -0
- package/packages/cli/templates/guides/architecture-guide.md +423 -0
- package/packages/cli/templates/guides/code-philosophy.md +195 -0
- package/packages/cli/templates/guides/context-files-guide.md +457 -0
- package/packages/cli/templates/guides/data-architecture-guide.md +200 -0
- package/packages/cli/templates/guides/design-doc-guide.md +171 -0
- package/packages/cli/templates/guides/learning-extraction.md +552 -0
- package/packages/cli/templates/guides/llm-instruction-design.md +248 -0
- package/packages/cli/templates/guides/llm-prompting.md +102 -0
- package/packages/cli/templates/guides/tdd-best-practices.md +615 -0
- package/packages/cli/templates/guides/test-definitions-guide.md +334 -0
- package/packages/cli/templates/guides/testing-methodology.md +618 -0
- package/packages/cli/templates/guides/user-story-guide.md +256 -0
- package/packages/cli/templates/guides/zombie-process-cleanup.md +219 -0
- package/packages/cli/templates/hooks/agents-md-check.sh +27 -0
- package/packages/cli/templates/hooks/post-tool.sh +4 -0
- package/packages/cli/templates/hooks/pre-commit.sh +10 -0
- package/packages/cli/templates/prompts/arch-review.md +43 -0
- package/packages/cli/templates/prompts/quality-review.md +10 -0
- package/packages/cli/templates/skills/safeword-quality-reviewer/SKILL.md +207 -0
- package/packages/cli/tests/commands/check.test.ts +129 -0
- package/packages/cli/tests/commands/cli.test.ts +89 -0
- package/packages/cli/tests/commands/diff.test.ts +115 -0
- package/packages/cli/tests/commands/reset.test.ts +310 -0
- package/packages/cli/tests/commands/self-healing.test.ts +170 -0
- package/packages/cli/tests/commands/setup-blocking.test.ts +71 -0
- package/packages/cli/tests/commands/setup-core.test.ts +135 -0
- package/packages/cli/tests/commands/setup-git.test.ts +139 -0
- package/packages/cli/tests/commands/setup-hooks.test.ts +334 -0
- package/packages/cli/tests/commands/setup-linting.test.ts +189 -0
- package/packages/cli/tests/commands/setup-noninteractive.test.ts +80 -0
- package/packages/cli/tests/commands/setup-templates.test.ts +181 -0
- package/packages/cli/tests/commands/upgrade.test.ts +215 -0
- package/packages/cli/tests/helpers.ts +243 -0
- package/packages/cli/tests/npm-package.test.ts +83 -0
- package/packages/cli/tests/technical-constraints.test.ts +96 -0
- package/packages/cli/tsconfig.json +25 -0
- package/packages/cli/tsup.config.ts +11 -0
- package/packages/cli/vitest.config.ts +23 -0
- package/promptfoo.yaml +3270 -0
- package/dist/check-3NGQ4NR5.js +0 -129
- package/dist/check-3NGQ4NR5.js.map +0 -1
- package/dist/chunk-2XWIUEQK.js +0 -190
- package/dist/chunk-2XWIUEQK.js.map +0 -1
- package/dist/chunk-GZRQL3SX.js +0 -146
- package/dist/chunk-GZRQL3SX.js.map +0 -1
- package/dist/chunk-ORQHKDT2.js +0 -10
- package/dist/chunk-ORQHKDT2.js.map +0 -1
- package/dist/chunk-W66Z3C5H.js +0 -21
- package/dist/chunk-W66Z3C5H.js.map +0 -1
- package/dist/cli.d.ts +0 -1
- package/dist/cli.js +0 -34
- package/dist/cli.js.map +0 -1
- package/dist/diff-Y6QTAW4O.js +0 -166
- package/dist/diff-Y6QTAW4O.js.map +0 -1
- package/dist/index.d.ts +0 -11
- package/dist/index.js +0 -7
- package/dist/index.js.map +0 -1
- package/dist/reset-3ACTIYYE.js +0 -143
- package/dist/reset-3ACTIYYE.js.map +0 -1
- package/dist/setup-RR4M334C.js +0 -266
- package/dist/setup-RR4M334C.js.map +0 -1
- package/dist/upgrade-6AR3DHUV.js +0 -134
- package/dist/upgrade-6AR3DHUV.js.map +0 -1
- /package/{templates → framework}/SAFEWORD.md +0 -0
- /package/{templates → framework}/guides/architecture-guide.md +0 -0
- /package/{templates → framework}/guides/code-philosophy.md +0 -0
- /package/{templates → framework}/guides/context-files-guide.md +0 -0
- /package/{templates → framework}/guides/data-architecture-guide.md +0 -0
- /package/{templates → framework}/guides/design-doc-guide.md +0 -0
- /package/{templates → framework}/guides/learning-extraction.md +0 -0
- /package/{templates → framework}/guides/llm-instruction-design.md +0 -0
- /package/{templates → framework}/guides/llm-prompting.md +0 -0
- /package/{templates → framework}/guides/tdd-best-practices.md +0 -0
- /package/{templates → framework}/guides/test-definitions-guide.md +0 -0
- /package/{templates → framework}/guides/testing-methodology.md +0 -0
- /package/{templates → framework}/guides/user-story-guide.md +0 -0
- /package/{templates → framework}/guides/zombie-process-cleanup.md +0 -0
- /package/{templates → framework}/prompts/arch-review.md +0 -0
- /package/{templates → framework}/prompts/quality-review.md +0 -0
- /package/{templates/skills/safeword-quality-reviewer → framework/skills/quality-reviewer}/SKILL.md +0 -0
- /package/{templates/doc-templates → framework/templates}/architecture-template.md +0 -0
- /package/{templates/doc-templates → framework/templates}/design-doc-template.md +0 -0
- /package/{templates/doc-templates → framework/templates}/test-definitions-feature.md +0 -0
- /package/{templates/doc-templates → framework/templates}/ticket-template.md +0 -0
- /package/{templates/doc-templates → framework/templates}/user-stories-template.md +0 -0
- /package/{templates → packages/cli/templates}/commands/arch-review.md +0 -0
- /package/{templates → packages/cli/templates}/commands/lint.md +0 -0
- /package/{templates → packages/cli/templates}/commands/quality-review.md +0 -0
- /package/{templates → packages/cli/templates}/hooks/inject-timestamp.sh +0 -0
- /package/{templates → packages/cli/templates}/lib/common.sh +0 -0
- /package/{templates → packages/cli/templates}/lib/jq-fallback.sh +0 -0
- /package/{templates → packages/cli/templates}/markdownlint.jsonc +0 -0
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
# Project Structure Cleanup Plan
|
|
2
|
+
|
|
3
|
+
**Date:** 2025-11-28
|
|
4
|
+
**Status:** Planning
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Problem Statement
|
|
9
|
+
|
|
10
|
+
The project has significant duplication and organizational confusion:
|
|
11
|
+
1. `framework/` and `.safeword/` contain nearly identical content
|
|
12
|
+
2. Multiple SAFEWORD.md files (root, framework/, .safeword/)
|
|
13
|
+
3. Planning/tickets scattered across `.agents/`, `.safeword/`, `planning/`, `docs/`
|
|
14
|
+
4. Duplicate `learnings/` directories
|
|
15
|
+
5. Test artifacts in root directory
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Proposed Changes
|
|
20
|
+
|
|
21
|
+
### 1. Clarify framework/ vs .safeword/ Purpose
|
|
22
|
+
|
|
23
|
+
**Decision:**
|
|
24
|
+
- `framework/` = Source templates bundled by CLI for distribution
|
|
25
|
+
- `.safeword/` = Generated instance (created by `npx safeword setup`)
|
|
26
|
+
- This repo is the safeword source, so `.safeword/` should NOT exist here (it's for target projects)
|
|
27
|
+
|
|
28
|
+
**Action:** Delete `.safeword/` directory entirely. The CLI reads from `packages/cli/templates/` or `framework/`.
|
|
29
|
+
|
|
30
|
+
### 2. Remove Root SAFEWORD.md
|
|
31
|
+
|
|
32
|
+
**Current state:**
|
|
33
|
+
- `SAFEWORD.md` (root) - 542 bytes, stub
|
|
34
|
+
- `framework/SAFEWORD.md` - 31KB, full content
|
|
35
|
+
|
|
36
|
+
**Action:** Delete root `SAFEWORD.md`. Update `CLAUDE.md` to point to `framework/SAFEWORD.md`.
|
|
37
|
+
|
|
38
|
+
### 3. Consolidate Planning Directories
|
|
39
|
+
|
|
40
|
+
**Current state:**
|
|
41
|
+
- `.safeword/planning/` - AI working docs (12 files)
|
|
42
|
+
- `.safeword/tickets/` - Tickets (11 files)
|
|
43
|
+
- `.safeword/planning/` - Planning docs
|
|
44
|
+
- `.safeword/tickets/` - Tickets
|
|
45
|
+
- `planning/` - Various planning docs (9 files)
|
|
46
|
+
- `docs/` - Implementation plans (2 files)
|
|
47
|
+
|
|
48
|
+
**Action:**
|
|
49
|
+
- Keep `.agents/` for AI working space (gitignored, ephemeral)
|
|
50
|
+
- Move `planning/` contents to `docs/planning/`
|
|
51
|
+
- Delete `.safeword/planning/` and `.safeword/tickets/` (duplicates)
|
|
52
|
+
|
|
53
|
+
### 4. Consolidate learnings/
|
|
54
|
+
|
|
55
|
+
**Current state:**
|
|
56
|
+
- `learnings/` (root) - 4 files
|
|
57
|
+
- `.safeword/learnings/` - likely empty or duplicate
|
|
58
|
+
|
|
59
|
+
**Action:** Keep root `learnings/`, delete `.safeword/learnings/`.
|
|
60
|
+
|
|
61
|
+
### 5. Organize Test/Eval Files
|
|
62
|
+
|
|
63
|
+
**Current state:**
|
|
64
|
+
- `promptfoo.yaml` (127KB) - test setup
|
|
65
|
+
- `eval-results.json` (958KB) - test artifact
|
|
66
|
+
|
|
67
|
+
**Action:**
|
|
68
|
+
- Create `evals/` directory
|
|
69
|
+
- Move `promptfoo.yaml` to `evals/promptfoo.yaml`
|
|
70
|
+
- Add `eval-results.json` to `.gitignore`
|
|
71
|
+
- Update `package.json` scripts to use new path
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Files Requiring Path Updates
|
|
76
|
+
|
|
77
|
+
### Scripts to Check
|
|
78
|
+
|
|
79
|
+
1. `.claude/hooks/auto-quality-review.sh` - references `.safeword/`?
|
|
80
|
+
2. `.claude/hooks/run-quality-review.sh` - references prompts?
|
|
81
|
+
3. `.safeword/scripts/arch-review.sh` - references `.safeword/prompts/`
|
|
82
|
+
4. `framework/scripts/*.sh` - check all paths
|
|
83
|
+
5. `packages/cli/src/**/*.ts` - check template paths
|
|
84
|
+
|
|
85
|
+
### Markdown Files to Check
|
|
86
|
+
|
|
87
|
+
1. `CLAUDE.md` - points to `.safeword/SAFEWORD.md`
|
|
88
|
+
2. `AGENTS.md` - may reference `.safeword/`
|
|
89
|
+
3. `README.md` - may reference paths
|
|
90
|
+
4. `framework/README.md` - internal references
|
|
91
|
+
5. `packages/cli/ARCHITECTURE.md` - references to planning docs
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## New Structure (After Cleanup)
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
safeword/
|
|
99
|
+
├── packages/cli/ # CLI source code
|
|
100
|
+
│ ├── src/
|
|
101
|
+
│ ├── templates/ # Bundled templates
|
|
102
|
+
│ ├── tests/
|
|
103
|
+
│ └── ARCHITECTURE.md
|
|
104
|
+
├── framework/ # Source templates & guides
|
|
105
|
+
│ ├── guides/
|
|
106
|
+
│ ├── prompts/
|
|
107
|
+
│ ├── templates/
|
|
108
|
+
│ ├── scripts/
|
|
109
|
+
│ ├── skills/
|
|
110
|
+
│ ├── mcp/
|
|
111
|
+
│ └── SAFEWORD.md
|
|
112
|
+
├── docs/ # Project documentation
|
|
113
|
+
│ ├── planning/ # (moved from planning/)
|
|
114
|
+
│ └── *.md
|
|
115
|
+
├── evals/ # LLM evaluation setup
|
|
116
|
+
│ └── promptfoo.yaml
|
|
117
|
+
├── learnings/ # Extracted learnings
|
|
118
|
+
├── .agents/ # AI working space (gitignored)
|
|
119
|
+
├── .claude/ # Claude Code config (tracked)
|
|
120
|
+
│ ├── commands/
|
|
121
|
+
│ ├── hooks/
|
|
122
|
+
│ ├── skills/
|
|
123
|
+
│ └── settings.json
|
|
124
|
+
├── CLAUDE.md # Points to framework/SAFEWORD.md
|
|
125
|
+
├── AGENTS.md
|
|
126
|
+
├── README.md
|
|
127
|
+
└── package.json
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Execution Order
|
|
133
|
+
|
|
134
|
+
1. Update `.gitignore` first (add eval-results.json, .agents/)
|
|
135
|
+
2. Delete `.safeword/` directory
|
|
136
|
+
3. Delete root `SAFEWORD.md`
|
|
137
|
+
4. Move `planning/` to `docs/planning/`
|
|
138
|
+
5. Create `evals/` and move `promptfoo.yaml`
|
|
139
|
+
6. Update `CLAUDE.md` path reference
|
|
140
|
+
7. Update `package.json` eval scripts
|
|
141
|
+
8. Verify all script paths
|
|
142
|
+
9. Verify all markdown link paths
|
|
143
|
+
10. Test CLI still works
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Rollback Plan
|
|
148
|
+
|
|
149
|
+
If issues arise:
|
|
150
|
+
```bash
|
|
151
|
+
git checkout -- .
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
All changes should be in a single commit for easy revert.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Planning
|
|
2
|
+
|
|
3
|
+
## Structure
|
|
4
|
+
|
|
5
|
+
- `user-stories/` - User stories for features (As a X / Given-When-Then)
|
|
6
|
+
- `user-stories/archive/` - Completed/obsolete user stories
|
|
7
|
+
- `test-definitions/` - Test scenarios and acceptance criteria
|
|
8
|
+
- `test-definitions/archive/` - Completed/obsolete test definitions
|
|
9
|
+
- `design/` - Design docs for complex features (>3 components, new data model, architectural decisions)
|
|
10
|
+
- `design/archive/` - Completed/obsolete design docs
|
|
11
|
+
- `issues/` - Issue tracking and requirements
|
|
12
|
+
- `issues/archive/` - Completed/obsolete issues
|
|
13
|
+
|
|
14
|
+
## Naming Convention
|
|
15
|
+
|
|
16
|
+
**Planning docs share the same prefix as their ticket:**
|
|
17
|
+
|
|
18
|
+
Example for ticket `001-user-authentication.md`:
|
|
19
|
+
- `user-stories/001-user-authentication.md`
|
|
20
|
+
- `test-definitions/001-user-authentication.md`
|
|
21
|
+
- `design/001-user-authentication.md`
|
|
22
|
+
|
|
23
|
+
This makes it easy to find all related docs: `ls **/001-user-authentication.md`
|
|
24
|
+
|
|
25
|
+
## Archiving
|
|
26
|
+
|
|
27
|
+
When planning docs are completed and no longer actively referenced:
|
|
28
|
+
- Move to corresponding `archive/` subfolder
|
|
29
|
+
- Preserves history while preventing bloat in active folders
|
|
30
|
+
|
|
31
|
+
## Workflow
|
|
32
|
+
|
|
33
|
+
1. **User stories** → Define what we're building
|
|
34
|
+
2. **Test definitions** → Define how we'll verify it works
|
|
35
|
+
3. **Design docs** (optional for complex features) → Plan implementation
|
|
36
|
+
4. **Implementation (TDD)** → RED → GREEN → REFACTOR
|
|
37
|
+
5. **Archive** → Move completed docs to archive/
|
|
38
|
+
|
|
39
|
+
See `@./.safeword/SAFEWORD.md` for full workflow.
|