safeword 0.2.4 → 0.2.6
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/dist/check-3NGQ4NR5.js +129 -0
- package/dist/check-3NGQ4NR5.js.map +1 -0
- package/dist/chunk-2XWIUEQK.js +190 -0
- package/dist/chunk-2XWIUEQK.js.map +1 -0
- package/dist/chunk-GZRQL3SX.js +146 -0
- package/dist/chunk-GZRQL3SX.js.map +1 -0
- package/dist/chunk-ORQHKDT2.js +10 -0
- package/dist/chunk-ORQHKDT2.js.map +1 -0
- package/dist/chunk-W66Z3C5H.js +21 -0
- package/dist/chunk-W66Z3C5H.js.map +1 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +34 -0
- package/dist/cli.js.map +1 -0
- package/dist/diff-Y6QTAW4O.js +166 -0
- package/dist/diff-Y6QTAW4O.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/reset-3ACTIYYE.js +143 -0
- package/dist/reset-3ACTIYYE.js.map +1 -0
- package/dist/setup-AIL5RL45.js +276 -0
- package/dist/setup-AIL5RL45.js.map +1 -0
- package/dist/upgrade-6AR3DHUV.js +134 -0
- package/dist/upgrade-6AR3DHUV.js.map +1 -0
- package/package.json +44 -19
- package/{.safeword → templates}/hooks/agents-md-check.sh +0 -0
- package/{.safeword → templates}/hooks/post-tool.sh +0 -0
- package/{.safeword → templates}/hooks/pre-commit.sh +0 -0
- package/.claude/commands/arch-review.md +0 -32
- package/.claude/commands/lint.md +0 -6
- package/.claude/commands/quality-review.md +0 -13
- package/.claude/commands/setup-linting.md +0 -6
- package/.claude/hooks/auto-lint.sh +0 -6
- package/.claude/hooks/auto-quality-review.sh +0 -170
- package/.claude/hooks/check-linting-sync.sh +0 -17
- package/.claude/hooks/inject-timestamp.sh +0 -6
- package/.claude/hooks/question-protocol.sh +0 -12
- package/.claude/hooks/run-linters.sh +0 -8
- package/.claude/hooks/run-quality-review.sh +0 -76
- package/.claude/hooks/version-check.sh +0 -10
- package/.claude/mcp/README.md +0 -96
- package/.claude/mcp/arcade.sample.json +0 -9
- package/.claude/mcp/context7.sample.json +0 -7
- package/.claude/mcp/playwright.sample.json +0 -7
- package/.claude/settings.json +0 -62
- package/.claude/skills/quality-reviewer/SKILL.md +0 -190
- package/.claude/skills/safeword-quality-reviewer/SKILL.md +0 -13
- package/.env.arcade.example +0 -4
- package/.env.example +0 -11
- package/.gitmodules +0 -4
- package/.safeword/SAFEWORD.md +0 -33
- package/.safeword/eslint/eslint-base.mjs +0 -101
- package/.safeword/guides/architecture-guide.md +0 -404
- package/.safeword/guides/code-philosophy.md +0 -174
- package/.safeword/guides/context-files-guide.md +0 -405
- package/.safeword/guides/data-architecture-guide.md +0 -183
- package/.safeword/guides/design-doc-guide.md +0 -165
- package/.safeword/guides/learning-extraction.md +0 -515
- package/.safeword/guides/llm-instruction-design.md +0 -239
- package/.safeword/guides/llm-prompting.md +0 -95
- package/.safeword/guides/tdd-best-practices.md +0 -570
- package/.safeword/guides/test-definitions-guide.md +0 -243
- package/.safeword/guides/testing-methodology.md +0 -573
- package/.safeword/guides/user-story-guide.md +0 -237
- package/.safeword/guides/zombie-process-cleanup.md +0 -214
- package/.safeword/planning/002-user-story-quality-evaluation.md +0 -1840
- package/.safeword/planning/003-langsmith-eval-setup-prompt.md +0 -363
- package/.safeword/planning/004-llm-eval-test-cases.md +0 -3226
- package/.safeword/planning/005-architecture-enforcement-system.md +0 -169
- package/.safeword/planning/006-reactive-fix-prevention-research.md +0 -135
- package/.safeword/planning/011-cli-ux-vision.md +0 -330
- package/.safeword/planning/012-project-structure-cleanup.md +0 -154
- package/.safeword/planning/README.md +0 -39
- package/.safeword/planning/automation-plan-v2.md +0 -1225
- package/.safeword/planning/automation-plan-v3.md +0 -1291
- package/.safeword/planning/automation-plan.md +0 -3058
- package/.safeword/planning/design/005-cli-implementation.md +0 -343
- package/.safeword/planning/design/013-cli-self-contained-templates.md +0 -596
- package/.safeword/planning/design/013a-eslint-plugin-suite.md +0 -256
- package/.safeword/planning/design/013b-implementation-snippets.md +0 -385
- package/.safeword/planning/design/013c-config-isolation-strategy.md +0 -242
- package/.safeword/planning/design/code-philosophy-improvements.md +0 -60
- package/.safeword/planning/mcp-analysis.md +0 -545
- package/.safeword/planning/phase2-subagents-vs-skills-analysis.md +0 -451
- package/.safeword/planning/settings-improvements.md +0 -970
- package/.safeword/planning/test-definitions/005-cli-implementation.md +0 -1301
- package/.safeword/planning/test-definitions/cli-self-contained-templates.md +0 -205
- package/.safeword/planning/user-stories/001-guides-review-user-stories.md +0 -1381
- package/.safeword/planning/user-stories/003-reactive-fix-prevention.md +0 -132
- package/.safeword/planning/user-stories/004-technical-constraints.md +0 -86
- package/.safeword/planning/user-stories/005-cli-implementation.md +0 -311
- package/.safeword/planning/user-stories/cli-self-contained-templates.md +0 -172
- package/.safeword/planning/versioned-distribution.md +0 -740
- package/.safeword/prompts/arch-review.md +0 -43
- package/.safeword/prompts/quality-review.md +0 -11
- package/.safeword/scripts/arch-review.sh +0 -235
- package/.safeword/scripts/check-linting-sync.sh +0 -58
- package/.safeword/scripts/setup-linting.sh +0 -559
- package/.safeword/templates/architecture-template.md +0 -136
- package/.safeword/templates/ci/architecture-check.yml +0 -79
- package/.safeword/templates/design-doc-template.md +0 -127
- package/.safeword/templates/test-definitions-feature.md +0 -100
- package/.safeword/templates/ticket-template.md +0 -74
- package/.safeword/templates/user-stories-template.md +0 -82
- package/.safeword/tickets/001-guides-review-user-stories.md +0 -83
- package/.safeword/tickets/002-architecture-enforcement.md +0 -211
- package/.safeword/tickets/003-reactive-fix-prevention.md +0 -57
- package/.safeword/tickets/004-technical-constraints-in-user-stories.md +0 -39
- package/.safeword/tickets/005-cli-implementation.md +0 -248
- package/.safeword/tickets/006-flesh-out-skills.md +0 -43
- package/.safeword/tickets/007-flesh-out-questioning.md +0 -44
- package/.safeword/tickets/008-upgrade-questioning.md +0 -58
- package/.safeword/tickets/009-naming-conventions.md +0 -41
- package/.safeword/tickets/010-safeword-md-cleanup.md +0 -34
- package/.safeword/tickets/011-cursor-setup.md +0 -86
- package/.safeword/tickets/README.md +0 -73
- package/.safeword/version +0 -1
- package/AGENTS.md +0 -59
- package/CLAUDE.md +0 -12
- package/README.md +0 -347
- package/docs/001-cli-implementation-plan.md +0 -856
- package/docs/elite-dx-implementation-plan.md +0 -1034
- package/framework/README.md +0 -131
- package/framework/mcp/README.md +0 -96
- package/framework/mcp/arcade.sample.json +0 -8
- package/framework/mcp/context7.sample.json +0 -6
- package/framework/mcp/playwright.sample.json +0 -6
- package/framework/scripts/arch-review.sh +0 -235
- package/framework/scripts/check-linting-sync.sh +0 -58
- package/framework/scripts/load-env.sh +0 -49
- package/framework/scripts/setup-claude.sh +0 -223
- package/framework/scripts/setup-linting.sh +0 -559
- package/framework/scripts/setup-quality.sh +0 -477
- package/framework/scripts/setup-safeword.sh +0 -550
- package/framework/templates/ci/architecture-check.yml +0 -78
- package/learnings/ai-sdk-v5-breaking-changes.md +0 -178
- package/learnings/e2e-test-zombie-processes.md +0 -231
- package/learnings/milkdown-crepe-editor-property.md +0 -96
- package/learnings/prosemirror-fragment-traversal.md +0 -119
- package/packages/cli/AGENTS.md +0 -1
- package/packages/cli/ARCHITECTURE.md +0 -279
- package/packages/cli/package.json +0 -51
- package/packages/cli/src/cli.ts +0 -63
- package/packages/cli/src/commands/check.ts +0 -166
- package/packages/cli/src/commands/diff.ts +0 -209
- package/packages/cli/src/commands/reset.ts +0 -190
- package/packages/cli/src/commands/setup.ts +0 -325
- package/packages/cli/src/commands/upgrade.ts +0 -163
- package/packages/cli/src/index.ts +0 -3
- package/packages/cli/src/templates/config.ts +0 -58
- package/packages/cli/src/templates/content.ts +0 -18
- package/packages/cli/src/templates/index.ts +0 -12
- package/packages/cli/src/utils/agents-md.ts +0 -66
- package/packages/cli/src/utils/fs.ts +0 -179
- package/packages/cli/src/utils/git.ts +0 -124
- package/packages/cli/src/utils/hooks.ts +0 -29
- package/packages/cli/src/utils/output.ts +0 -60
- package/packages/cli/src/utils/project-detector.test.ts +0 -185
- package/packages/cli/src/utils/project-detector.ts +0 -44
- package/packages/cli/src/utils/version.ts +0 -28
- package/packages/cli/src/version.ts +0 -6
- package/packages/cli/templates/SAFEWORD.md +0 -776
- package/packages/cli/templates/doc-templates/architecture-template.md +0 -136
- package/packages/cli/templates/doc-templates/design-doc-template.md +0 -134
- package/packages/cli/templates/doc-templates/test-definitions-feature.md +0 -131
- package/packages/cli/templates/doc-templates/ticket-template.md +0 -82
- package/packages/cli/templates/doc-templates/user-stories-template.md +0 -92
- package/packages/cli/templates/guides/architecture-guide.md +0 -423
- package/packages/cli/templates/guides/code-philosophy.md +0 -195
- package/packages/cli/templates/guides/context-files-guide.md +0 -457
- package/packages/cli/templates/guides/data-architecture-guide.md +0 -200
- package/packages/cli/templates/guides/design-doc-guide.md +0 -171
- package/packages/cli/templates/guides/learning-extraction.md +0 -552
- package/packages/cli/templates/guides/llm-instruction-design.md +0 -248
- package/packages/cli/templates/guides/llm-prompting.md +0 -102
- package/packages/cli/templates/guides/tdd-best-practices.md +0 -615
- package/packages/cli/templates/guides/test-definitions-guide.md +0 -334
- package/packages/cli/templates/guides/testing-methodology.md +0 -618
- package/packages/cli/templates/guides/user-story-guide.md +0 -256
- package/packages/cli/templates/guides/zombie-process-cleanup.md +0 -219
- package/packages/cli/templates/hooks/agents-md-check.sh +0 -27
- package/packages/cli/templates/hooks/post-tool.sh +0 -4
- package/packages/cli/templates/hooks/pre-commit.sh +0 -10
- package/packages/cli/templates/prompts/arch-review.md +0 -43
- package/packages/cli/templates/prompts/quality-review.md +0 -10
- package/packages/cli/templates/skills/safeword-quality-reviewer/SKILL.md +0 -207
- package/packages/cli/tests/commands/check.test.ts +0 -129
- package/packages/cli/tests/commands/cli.test.ts +0 -89
- package/packages/cli/tests/commands/diff.test.ts +0 -115
- package/packages/cli/tests/commands/reset.test.ts +0 -310
- package/packages/cli/tests/commands/self-healing.test.ts +0 -170
- package/packages/cli/tests/commands/setup-blocking.test.ts +0 -71
- package/packages/cli/tests/commands/setup-core.test.ts +0 -135
- package/packages/cli/tests/commands/setup-git.test.ts +0 -139
- package/packages/cli/tests/commands/setup-hooks.test.ts +0 -334
- package/packages/cli/tests/commands/setup-linting.test.ts +0 -189
- package/packages/cli/tests/commands/setup-noninteractive.test.ts +0 -80
- package/packages/cli/tests/commands/setup-templates.test.ts +0 -181
- package/packages/cli/tests/commands/upgrade.test.ts +0 -215
- package/packages/cli/tests/helpers.ts +0 -243
- package/packages/cli/tests/npm-package.test.ts +0 -83
- package/packages/cli/tests/technical-constraints.test.ts +0 -96
- package/packages/cli/tsconfig.json +0 -25
- package/packages/cli/tsup.config.ts +0 -11
- package/packages/cli/vitest.config.ts +0 -23
- package/promptfoo.yaml +0 -3270
- /package/{framework → templates}/SAFEWORD.md +0 -0
- /package/{packages/cli/templates → templates}/commands/arch-review.md +0 -0
- /package/{packages/cli/templates → templates}/commands/lint.md +0 -0
- /package/{packages/cli/templates → templates}/commands/quality-review.md +0 -0
- /package/{framework/templates → templates/doc-templates}/architecture-template.md +0 -0
- /package/{framework/templates → templates/doc-templates}/design-doc-template.md +0 -0
- /package/{framework/templates → templates/doc-templates}/test-definitions-feature.md +0 -0
- /package/{framework/templates → templates/doc-templates}/ticket-template.md +0 -0
- /package/{framework/templates → templates/doc-templates}/user-stories-template.md +0 -0
- /package/{framework → templates}/guides/architecture-guide.md +0 -0
- /package/{framework → templates}/guides/code-philosophy.md +0 -0
- /package/{framework → templates}/guides/context-files-guide.md +0 -0
- /package/{framework → templates}/guides/data-architecture-guide.md +0 -0
- /package/{framework → templates}/guides/design-doc-guide.md +0 -0
- /package/{framework → templates}/guides/learning-extraction.md +0 -0
- /package/{framework → templates}/guides/llm-instruction-design.md +0 -0
- /package/{framework → templates}/guides/llm-prompting.md +0 -0
- /package/{framework → templates}/guides/tdd-best-practices.md +0 -0
- /package/{framework → templates}/guides/test-definitions-guide.md +0 -0
- /package/{framework → templates}/guides/testing-methodology.md +0 -0
- /package/{framework → templates}/guides/user-story-guide.md +0 -0
- /package/{framework → templates}/guides/zombie-process-cleanup.md +0 -0
- /package/{packages/cli/templates → templates}/hooks/inject-timestamp.sh +0 -0
- /package/{packages/cli/templates → templates}/lib/common.sh +0 -0
- /package/{packages/cli/templates → templates}/lib/jq-fallback.sh +0 -0
- /package/{packages/cli/templates → templates}/markdownlint.jsonc +0 -0
- /package/{framework → templates}/prompts/arch-review.md +0 -0
- /package/{framework → templates}/prompts/quality-review.md +0 -0
- /package/{framework/skills/quality-reviewer → templates/skills/safeword-quality-reviewer}/SKILL.md +0 -0
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
# Architecture Check CI Workflow
|
|
2
|
-
#
|
|
3
|
-
# Runs on pull requests to enforce architectural boundaries.
|
|
4
|
-
#
|
|
5
|
-
# Steps:
|
|
6
|
-
# 1. Type check (tsc --noEmit)
|
|
7
|
-
# 2. ESLint (includes eslint-plugin-boundaries)
|
|
8
|
-
# 3. LLM architecture review (optional, non-blocking)
|
|
9
|
-
#
|
|
10
|
-
# Usage:
|
|
11
|
-
# 1. Copy to .github/workflows/architecture-check.yml
|
|
12
|
-
# 2. Set ANTHROPIC_API_KEY secret (optional, for LLM review)
|
|
13
|
-
# 3. Adjust paths and triggers as needed
|
|
14
|
-
|
|
15
|
-
name: Architecture Check
|
|
16
|
-
|
|
17
|
-
on:
|
|
18
|
-
pull_request:
|
|
19
|
-
branches: [main, develop]
|
|
20
|
-
paths:
|
|
21
|
-
- 'src/**'
|
|
22
|
-
- 'package.json'
|
|
23
|
-
- 'tsconfig.json'
|
|
24
|
-
- 'eslint.config.mjs'
|
|
25
|
-
|
|
26
|
-
jobs:
|
|
27
|
-
architecture-check:
|
|
28
|
-
runs-on: ubuntu-latest
|
|
29
|
-
|
|
30
|
-
steps:
|
|
31
|
-
- name: Checkout
|
|
32
|
-
uses: actions/checkout@v4
|
|
33
|
-
|
|
34
|
-
- name: Setup Node.js
|
|
35
|
-
uses: actions/setup-node@v4
|
|
36
|
-
with:
|
|
37
|
-
node-version: '20'
|
|
38
|
-
cache: 'npm'
|
|
39
|
-
|
|
40
|
-
- name: Install dependencies
|
|
41
|
-
run: npm ci
|
|
42
|
-
|
|
43
|
-
# Step 1: Type check
|
|
44
|
-
- name: TypeScript Check
|
|
45
|
-
run: npx tsc --noEmit
|
|
46
|
-
continue-on-error: false
|
|
47
|
-
|
|
48
|
-
# Step 2: ESLint (includes boundary rules)
|
|
49
|
-
- name: ESLint
|
|
50
|
-
run: npm run lint
|
|
51
|
-
continue-on-error: false
|
|
52
|
-
|
|
53
|
-
# Step 3: LLM Architecture Review (optional)
|
|
54
|
-
# Only runs if ANTHROPIC_API_KEY is set
|
|
55
|
-
# Non-blocking by default (continue-on-error: true)
|
|
56
|
-
- name: Architecture Review (LLM)
|
|
57
|
-
if: ${{ secrets.ANTHROPIC_API_KEY != '' }}
|
|
58
|
-
env:
|
|
59
|
-
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
|
|
60
|
-
run: |
|
|
61
|
-
# Get changed files in this PR
|
|
62
|
-
CHANGED_FILES=$(git diff --name-only origin/${{ github.base_ref }}...HEAD | grep -E '\.(js|ts|tsx|jsx)$' || true)
|
|
63
|
-
|
|
64
|
-
if [ -n "$CHANGED_FILES" ]; then
|
|
65
|
-
echo "Reviewing changed files:"
|
|
66
|
-
echo "$CHANGED_FILES"
|
|
67
|
-
echo ""
|
|
68
|
-
|
|
69
|
-
# Run architecture review if script exists
|
|
70
|
-
if [ -f ".safeword/scripts/arch-review.sh" ]; then
|
|
71
|
-
echo "$CHANGED_FILES" | xargs bash .safeword/scripts/arch-review.sh || true
|
|
72
|
-
else
|
|
73
|
-
echo "arch-review.sh not found, skipping LLM review"
|
|
74
|
-
fi
|
|
75
|
-
else
|
|
76
|
-
echo "No JS/TS files changed"
|
|
77
|
-
fi
|
|
78
|
-
continue-on-error: true # Non-blocking (advisory only)
|
|
79
|
-
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
# Design: [Feature Name]
|
|
2
|
-
|
|
3
|
-
**Guide**: `@./.safeword/guides/design-doc-guide.md` - Principles, structure guidelines, and avoiding bloat
|
|
4
|
-
**Template**: `@./.safeword/templates/design-doc-template.md`
|
|
5
|
-
|
|
6
|
-
**Related**: User Stories: `[path]` | Test Definitions: `[path]`
|
|
7
|
-
|
|
8
|
-
**TDD Note**: This design implements tests from Test Definitions. Reference specific test scenarios (e.g., "Test 3.1: Component X enables keyboard shortcut Y").
|
|
9
|
-
|
|
10
|
-
## Architecture
|
|
11
|
-
|
|
12
|
-
[1-2 paragraphs: High-level approach. What are we building and how does it fit together?]
|
|
13
|
-
|
|
14
|
-
**Diagram** (if applicable):
|
|
15
|
-
[Text diagram or link to visual]
|
|
16
|
-
|
|
17
|
-
## Components
|
|
18
|
-
|
|
19
|
-
### Component [N]: [ComponentName]
|
|
20
|
-
|
|
21
|
-
**What**: [Responsibility in 1 sentence]
|
|
22
|
-
**Where** (if applicable): `[file/path/component.ts]`
|
|
23
|
-
**Interface**:
|
|
24
|
-
```typescript
|
|
25
|
-
// Key types/interfaces
|
|
26
|
-
interface Example {
|
|
27
|
-
id: string;
|
|
28
|
-
// ...
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
// Key methods
|
|
32
|
-
function doSomething(input: Example): Result;
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
**Dependencies**: [What it uses]
|
|
36
|
-
**Tests**: [Which test scenarios this component enables]
|
|
37
|
-
|
|
38
|
-
### Component [N+1]: [AnotherComponentName]
|
|
39
|
-
|
|
40
|
-
**What**: [Different responsibility than Component N]
|
|
41
|
-
**Where** (if applicable): `[different/file/path.ts]`
|
|
42
|
-
**Interface**:
|
|
43
|
-
```typescript
|
|
44
|
-
// Different example
|
|
45
|
-
interface AnotherExample {
|
|
46
|
-
value: string;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
function anotherMethod(input: AnotherExample): Output;
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
**Dependencies**: [Different dependencies]
|
|
53
|
-
**Tests**: [Different test scenarios this enables]
|
|
54
|
-
|
|
55
|
-
## Data Model (if applicable)
|
|
56
|
-
|
|
57
|
-
[Describe state shape, database schema, or data structures. Include relationships between types and how data flows through the system.]
|
|
58
|
-
|
|
59
|
-
```typescript
|
|
60
|
-
// Core data structures
|
|
61
|
-
interface FeatureState {
|
|
62
|
-
items: Item[];
|
|
63
|
-
selectedId: string | null;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
interface Item {
|
|
67
|
-
id: string;
|
|
68
|
-
name: string;
|
|
69
|
-
// ...
|
|
70
|
-
}
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
## Component Interaction (if applicable)
|
|
74
|
-
|
|
75
|
-
[How components communicate and data flows between them]
|
|
76
|
-
|
|
77
|
-
**Flow:**
|
|
78
|
-
Component [N] → Component [N+1]
|
|
79
|
-
|
|
80
|
-
**Events/Calls:**
|
|
81
|
-
- Component [N] triggers [event/method] in Component [N+1]
|
|
82
|
-
- Component [N+1] updates [state/data] consumed by [other components/system]
|
|
83
|
-
|
|
84
|
-
## User Flow
|
|
85
|
-
|
|
86
|
-
1. User [action, e.g., clicks "Toggle AI Pane" button, presses Cmd+J]
|
|
87
|
-
2. System [response, e.g., updates state, triggers re-render, calls API]
|
|
88
|
-
3. User sees [outcome, e.g., AI pane appears/disappears, loading spinner, error message]
|
|
89
|
-
|
|
90
|
-
## Key Decisions
|
|
91
|
-
|
|
92
|
-
### Decision [N]: [Technical choice]
|
|
93
|
-
|
|
94
|
-
**What**: [What we're using/doing]
|
|
95
|
-
**Why**: [Rationale with specifics - include metrics, benchmarks, or analysis]
|
|
96
|
-
**Trade-off**: [What we're giving up]
|
|
97
|
-
|
|
98
|
-
### Decision [N+1]: [Technical choice]
|
|
99
|
-
|
|
100
|
-
**What**: [Different choice than Decision N]
|
|
101
|
-
**Why**: [Rationale with specifics - include metrics, benchmarks, or analysis]
|
|
102
|
-
**Trade-off**: [Different trade-off]
|
|
103
|
-
|
|
104
|
-
## Implementation Notes (if applicable)
|
|
105
|
-
|
|
106
|
-
**Constraints**:
|
|
107
|
-
- [Technical limitation, e.g., "Must support Safari 14+", "No Node.js dependencies"]
|
|
108
|
-
- [Performance requirement, e.g., "< 200ms response time", "Bundle size < 100KB"]
|
|
109
|
-
|
|
110
|
-
**Error Handling**:
|
|
111
|
-
- [How errors are caught and handled]
|
|
112
|
-
- [User-facing vs internal errors]
|
|
113
|
-
- [Retry/fallback strategies]
|
|
114
|
-
|
|
115
|
-
**Gotchas**:
|
|
116
|
-
- [Edge case or common mistake]
|
|
117
|
-
- [Thing to watch out for]
|
|
118
|
-
|
|
119
|
-
**Open Questions**:
|
|
120
|
-
- [ ] [Blocking question]
|
|
121
|
-
- [ ] [Needs research]
|
|
122
|
-
|
|
123
|
-
## References (if applicable)
|
|
124
|
-
|
|
125
|
-
- [ADR-XXX: Related decision]
|
|
126
|
-
- [External docs or examples]
|
|
127
|
-
- [Proof of concept]
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
# Test Definitions: [Feature Name] (Issue #[number])
|
|
2
|
-
|
|
3
|
-
**Guide**: `@./.safeword/guides/test-definitions-guide.md` - Structure, status tracking, and TDD workflow
|
|
4
|
-
**Template**: `@./.safeword/templates/test-definitions-feature.md`
|
|
5
|
-
|
|
6
|
-
**Feature**: [Brief description of the feature]
|
|
7
|
-
|
|
8
|
-
**Related Issue**: #[number]
|
|
9
|
-
**Test File**: `[path/to/test.spec.ts]`
|
|
10
|
-
**Total Tests**: [N] ([X] passing, [Y] skipped, [Z] not implemented)
|
|
11
|
-
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
## Test Suite [N]: [Suite Name]
|
|
15
|
-
|
|
16
|
-
[Brief description of what this test suite covers]
|
|
17
|
-
|
|
18
|
-
### Test [N.1]: [Test name] [✅/⏭️/❌]
|
|
19
|
-
**Status**: [✅ Passing / ⏭️ Skipped / ❌ Not Implemented / 🔴 Failing]
|
|
20
|
-
**Description**: [What this test verifies]
|
|
21
|
-
|
|
22
|
-
**Steps**:
|
|
23
|
-
1. [Action 1]
|
|
24
|
-
2. [Action 2]
|
|
25
|
-
3. [Action 3]
|
|
26
|
-
|
|
27
|
-
**Expected**:
|
|
28
|
-
- [Expected outcome 1]
|
|
29
|
-
- [Expected outcome 2]
|
|
30
|
-
- [Expected outcome 3]
|
|
31
|
-
|
|
32
|
-
---
|
|
33
|
-
|
|
34
|
-
### Test [N.2]: [Test name] [✅/⏭️/❌]
|
|
35
|
-
**Status**: [✅ Passing / ⏭️ Skipped / ❌ Not Implemented / 🔴 Failing]
|
|
36
|
-
**Description**: [What this test verifies]
|
|
37
|
-
|
|
38
|
-
**Steps**:
|
|
39
|
-
1. [Action 1]
|
|
40
|
-
2. [Action 2]
|
|
41
|
-
|
|
42
|
-
**Expected**:
|
|
43
|
-
- [Expected outcome 1]
|
|
44
|
-
- [Expected outcome 2]
|
|
45
|
-
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
## Test Suite [N+1]: [Suite Name]
|
|
49
|
-
|
|
50
|
-
[Brief description of what this test suite covers]
|
|
51
|
-
|
|
52
|
-
### Test [N+1.1]: [Test name] [✅/⏭️/❌]
|
|
53
|
-
**Status**: [✅ Passing / ⏭️ Skipped / ❌ Not Implemented / 🔴 Failing]
|
|
54
|
-
**Description**: [What this test verifies]
|
|
55
|
-
|
|
56
|
-
**Steps**:
|
|
57
|
-
1. [Action 1]
|
|
58
|
-
2. [Action 2]
|
|
59
|
-
|
|
60
|
-
**Expected**:
|
|
61
|
-
- [Expected outcome 1]
|
|
62
|
-
|
|
63
|
-
---
|
|
64
|
-
|
|
65
|
-
## Summary
|
|
66
|
-
|
|
67
|
-
**Total**: [N] tests
|
|
68
|
-
**Passing**: [X] tests ([X]%)
|
|
69
|
-
**Skipped**: [Y] tests ([Y]%)
|
|
70
|
-
**Not Implemented**: [Z] tests ([Z]%)
|
|
71
|
-
**Failing**: [F] tests ([F]%)
|
|
72
|
-
|
|
73
|
-
### Coverage by Feature
|
|
74
|
-
|
|
75
|
-
| Feature | Tests | Status |
|
|
76
|
-
|---------|-------|--------|
|
|
77
|
-
| [Feature 1] | [X]/[N] | [✅/❌] [X]% |
|
|
78
|
-
| [Feature 2] | [X]/[N] | [✅/❌] [X]% |
|
|
79
|
-
| [Feature 3] | [X]/[N] | [✅/❌] [X]% |
|
|
80
|
-
|
|
81
|
-
### Skipped Tests Rationale
|
|
82
|
-
|
|
83
|
-
1. **Test [N.X]** ([Test name]): [Reason for skipping - e.g., conflicts with design decision, requires manual testing, etc.]
|
|
84
|
-
2. **Test [N.Y]** ([Test name]): [Reason for skipping]
|
|
85
|
-
|
|
86
|
-
---
|
|
87
|
-
|
|
88
|
-
## Test Execution
|
|
89
|
-
|
|
90
|
-
```bash
|
|
91
|
-
# Run all tests for this feature
|
|
92
|
-
[command to run all tests]
|
|
93
|
-
|
|
94
|
-
# Run specific test
|
|
95
|
-
[command to run specific test with --grep flag]
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
---
|
|
99
|
-
|
|
100
|
-
**Last Updated**: [YYYY-MM-DD]
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: XXX
|
|
3
|
-
status: in_progress
|
|
4
|
-
created: YYYY-MM-DDTHH:MM:SSZ
|
|
5
|
-
last_modified: YYYY-MM-DDTHH:MM:SSZ
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Title
|
|
9
|
-
|
|
10
|
-
**Goal:** {One sentence: what are we trying to achieve?}
|
|
11
|
-
|
|
12
|
-
**Why:** {One sentence: why does this matter?}
|
|
13
|
-
|
|
14
|
-
## Work Log
|
|
15
|
-
|
|
16
|
-
**Purpose:** Track what you've tried so you don't repeat dead ends or lose context.
|
|
17
|
-
|
|
18
|
-
**CRITICAL: Re-read this ticket before each significant action to stay on track.**
|
|
19
|
-
|
|
20
|
-
**Log immediately after:**
|
|
21
|
-
- Starting work
|
|
22
|
-
- Completing a step
|
|
23
|
-
- Trying an approach (document result: success or failure)
|
|
24
|
-
- Discovering a blocker, tradeoff, or decision point
|
|
25
|
-
- Writing a test (RED) or making it pass (GREEN)
|
|
26
|
-
- Committing code
|
|
27
|
-
|
|
28
|
-
**Format:** `YYYY-MM-DDTHH:MM:SSZ Action: Description (refs: commit/file/PR)`
|
|
29
|
-
|
|
30
|
-
**Examples:**
|
|
31
|
-
```
|
|
32
|
-
- 2025-11-24T18:50:00Z Started: Changing button background to red
|
|
33
|
-
- 2025-11-24T18:51:30Z Tried: Added `background: red` to Button.css
|
|
34
|
-
- 2025-11-24T18:52:00Z Found: Button now has white text on red (unreadable)
|
|
35
|
-
- 2025-11-24T18:53:00Z Tried: Changed text color to white
|
|
36
|
-
- 2025-11-24T18:54:15Z Found: Hover state still blue (conflicts)
|
|
37
|
-
- 2025-11-24T18:55:00Z Complete: Updated all button states to red theme (refs: commit 9a3f2c1)
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
---
|
|
41
|
-
|
|
42
|
-
{Keep work log in reverse-chronological order. Newest entries at top.}
|
|
43
|
-
{Re-read before each action. Check what you've tried. Stay aligned with Goal.}
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
|
|
47
|
-
## Optional Sections (Add When Needed)
|
|
48
|
-
|
|
49
|
-
### Planning Docs
|
|
50
|
-
{Only for complex features that need user stories, test definitions, design docs}
|
|
51
|
-
|
|
52
|
-
- .safeword/planning/user-stories/XXX-feature-name.md
|
|
53
|
-
- .safeword/planning/test-definitions/XXX-feature-name.md
|
|
54
|
-
- .safeword/planning/design/XXX-feature-name.md
|
|
55
|
-
|
|
56
|
-
### Scope
|
|
57
|
-
{Only for complex features with unclear boundaries}
|
|
58
|
-
|
|
59
|
-
**In scope:**
|
|
60
|
-
-
|
|
61
|
-
|
|
62
|
-
**Out of scope:**
|
|
63
|
-
-
|
|
64
|
-
|
|
65
|
-
### Acceptance Criteria
|
|
66
|
-
{Only for features or complex bugs where "done" isn't obvious}
|
|
67
|
-
|
|
68
|
-
- [ ]
|
|
69
|
-
- [ ]
|
|
70
|
-
|
|
71
|
-
### Root Cause
|
|
72
|
-
{Only for bugs that required investigation}
|
|
73
|
-
|
|
74
|
-
{What caused this issue? Document for future reference.}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
# User Stories: [Feature Name] (Issue #[number])
|
|
2
|
-
|
|
3
|
-
**Guide**: `@./.safeword/guides/user-story-guide.md` - Best practices, INVEST criteria, and examples
|
|
4
|
-
**Template**: `@./.safeword/templates/user-stories-template.md`
|
|
5
|
-
|
|
6
|
-
**Feature**: [Brief description of the feature]
|
|
7
|
-
|
|
8
|
-
**Related Issue**: #[number]
|
|
9
|
-
**Status**: [🚧 In Progress / ✅ Complete / ❌ Not Started] ([X/Y] stories complete)
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
## Technical Constraints
|
|
14
|
-
|
|
15
|
-
_Non-functional requirements that inform test definitions. Delete sections that don't apply._
|
|
16
|
-
|
|
17
|
-
### Performance
|
|
18
|
-
- [ ] [e.g., Response time < 200ms at P95]
|
|
19
|
-
|
|
20
|
-
### Security
|
|
21
|
-
- [ ] [e.g., All inputs validated/sanitized]
|
|
22
|
-
|
|
23
|
-
### Compatibility
|
|
24
|
-
- [ ] [e.g., Chrome 100+, Safari 16+]
|
|
25
|
-
|
|
26
|
-
### Data
|
|
27
|
-
- [ ] [e.g., GDPR: user data deletable within 72h]
|
|
28
|
-
|
|
29
|
-
### Dependencies
|
|
30
|
-
- [ ] [e.g., Must use existing AuthService]
|
|
31
|
-
|
|
32
|
-
### Infrastructure
|
|
33
|
-
- [ ] [e.g., Memory usage < 512MB]
|
|
34
|
-
|
|
35
|
-
---
|
|
36
|
-
|
|
37
|
-
## Story [N]: [Story Title]
|
|
38
|
-
|
|
39
|
-
**As a** [role]
|
|
40
|
-
**I want to** [capability]
|
|
41
|
-
**So that** [value]
|
|
42
|
-
|
|
43
|
-
**Acceptance Criteria**:
|
|
44
|
-
- [✅/❌] [criterion 1]
|
|
45
|
-
- [✅/❌] [criterion 2]
|
|
46
|
-
- [✅/❌] [criterion 3]
|
|
47
|
-
|
|
48
|
-
**Implementation Status**: [✅ Complete / 🚧 In Progress / ❌ Not Started]
|
|
49
|
-
**Tests**: [test file path and line numbers]
|
|
50
|
-
|
|
51
|
-
**Notes**: [Optional: design decisions, scope clarifications, or open questions]
|
|
52
|
-
|
|
53
|
-
---
|
|
54
|
-
|
|
55
|
-
## Story [N+1]: [Story Title]
|
|
56
|
-
|
|
57
|
-
**As a** [role]
|
|
58
|
-
**I want to** [capability]
|
|
59
|
-
**So that** [value]
|
|
60
|
-
|
|
61
|
-
**Acceptance Criteria**:
|
|
62
|
-
- [✅/❌] [criterion 1]
|
|
63
|
-
- [✅/❌] [criterion 2]
|
|
64
|
-
|
|
65
|
-
**Implementation Status**: [✅ Complete / 🚧 In Progress / ❌ Not Started]
|
|
66
|
-
**Tests**: [test file path]
|
|
67
|
-
|
|
68
|
-
---
|
|
69
|
-
|
|
70
|
-
## Summary
|
|
71
|
-
|
|
72
|
-
**Completed**: [N]/[M] stories ([X]%)
|
|
73
|
-
**Remaining**: [N]/[M] stories ([X]%)
|
|
74
|
-
|
|
75
|
-
### [Phase Name]: [Description] [✅/❌]
|
|
76
|
-
- Story N: [Description]
|
|
77
|
-
- Story N+1: [Description]
|
|
78
|
-
|
|
79
|
-
### [Phase Name]: [Description] [✅/❌]
|
|
80
|
-
- Story N+2: [Description]
|
|
81
|
-
|
|
82
|
-
**Next Steps**: [What needs to be done next to complete the feature]
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: 001
|
|
3
|
-
status: in_progress
|
|
4
|
-
created: 2025-11-25T00:00:00Z
|
|
5
|
-
priority: medium
|
|
6
|
-
planning_refs:
|
|
7
|
-
- .safeword/planning/user-stories/001-guides-review-user-stories.md
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Guides Review and User Story Extraction
|
|
11
|
-
|
|
12
|
-
## Description
|
|
13
|
-
|
|
14
|
-
Review every guide under `framework/guides/` and extract actionable user stories for each distinct concept. Centralize all extracted stories in the linked planning doc for follow-up refinement and prioritization.
|
|
15
|
-
|
|
16
|
-
## Scope
|
|
17
|
-
|
|
18
|
-
- Files in scope:
|
|
19
|
-
- `framework/guides/architecture-guide.md`
|
|
20
|
-
- `framework/guides/code-philosophy.md`
|
|
21
|
-
- `framework/guides/context-files-guide.md`
|
|
22
|
-
- `framework/guides/data-architecture-guide.md`
|
|
23
|
-
- `framework/guides/design-doc-guide.md`
|
|
24
|
-
- `framework/guides/learning-extraction.md`
|
|
25
|
-
- `framework/guides/llm-instruction-design.md`
|
|
26
|
-
- `framework/guides/llm-prompting.md`
|
|
27
|
-
- `framework/guides/tdd-templates.md`
|
|
28
|
-
- `framework/guides/test-definitions-guide.md`
|
|
29
|
-
- `framework/guides/testing-methodology.md`
|
|
30
|
-
- `framework/guides/user-story-guide.md`
|
|
31
|
-
- `framework/guides/zombie-process-cleanup.md`
|
|
32
|
-
|
|
33
|
-
## Checklist (per-guide)
|
|
34
|
-
|
|
35
|
-
- [x] architecture-guide.md reviewed, stories extracted
|
|
36
|
-
- [x] code-philosophy.md reviewed, stories extracted
|
|
37
|
-
- [x] context-files-guide.md reviewed, stories extracted
|
|
38
|
-
- [x] data-architecture-guide.md reviewed, stories extracted
|
|
39
|
-
- [x] design-doc-guide.md reviewed, stories extracted
|
|
40
|
-
- [x] learning-extraction.md reviewed, stories extracted
|
|
41
|
-
- [x] llm-instruction-design.md reviewed, stories extracted
|
|
42
|
-
- [x] llm-prompting.md reviewed, stories extracted
|
|
43
|
-
- [x] tdd-templates.md reviewed, stories extracted
|
|
44
|
-
- [x] test-definitions-guide.md reviewed, stories extracted
|
|
45
|
-
- [x] testing-methodology.md reviewed, stories extracted
|
|
46
|
-
- [x] user-story-guide.md reviewed, stories extracted
|
|
47
|
-
- [x] zombie-process-cleanup.md reviewed, stories extracted
|
|
48
|
-
|
|
49
|
-
## Acceptance Criteria
|
|
50
|
-
|
|
51
|
-
- [ ] All guides reviewed and checklist completed
|
|
52
|
-
- [ ] Extracted user stories recorded in `.safeword/planning/user-stories/001-guides-review-user-stories.md`
|
|
53
|
-
- [ ] Duplicates consolidated; names and phrasing consistent
|
|
54
|
-
- [ ] Summary section added to this ticket linking to key story groups
|
|
55
|
-
|
|
56
|
-
## Summary of Extracted Story Groups
|
|
57
|
-
|
|
58
|
-
All extracted user stories are consolidated in:
|
|
59
|
-
|
|
60
|
-
- `.safeword/planning/user-stories/001-guides-review-user-stories.md`
|
|
61
|
-
|
|
62
|
-
Covered guides and sections:
|
|
63
|
-
|
|
64
|
-
- Architecture & Design Documentation Guide
|
|
65
|
-
- Code Philosophy & Practices
|
|
66
|
-
- Project Context Files (AGENTS/CLAUDE/CURSOR)
|
|
67
|
-
- Data Architecture Documentation Guide
|
|
68
|
-
- Design Doc Guide
|
|
69
|
-
- Learning Extraction Process
|
|
70
|
-
- LLM Instruction Design
|
|
71
|
-
- LLM Prompting Best Practices
|
|
72
|
-
- TDD Templates & Best Practices
|
|
73
|
-
- Test Definitions Guide
|
|
74
|
-
- Testing Methodology
|
|
75
|
-
- User Story Guide
|
|
76
|
-
- Zombie Process Cleanup
|
|
77
|
-
|
|
78
|
-
## Work Log
|
|
79
|
-
|
|
80
|
-
- Created ticket and linked planning doc.
|
|
81
|
-
- Extracted stories from code-philosophy.md and architecture-guide.md; updated planning doc and checklist.
|
|
82
|
-
- Extracted stories from learning-extraction.md, context-files-guide.md, data-architecture-guide.md, design-doc-guide.md; updated planning doc and checklist.
|
|
83
|
-
- Completed extraction for llm-instruction-design.md, llm-prompting.md, tdd-templates.md, test-definitions-guide.md, testing-methodology.md, user-story-guide.md, zombie-process-cleanup.md.
|