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,211 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: 002
|
|
3
|
-
status: in_progress
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Architecture Enforcement for SAFEWORD
|
|
7
|
-
|
|
8
|
-
**Goal:** Add layers/boundaries enforcement to SAFEWORD so AI agents respect architectural boundaries.
|
|
9
|
-
|
|
10
|
-
**Why:** Without guardrails, AI agents create circular dependencies, god modules, and unsafe refactoring patterns.
|
|
11
|
-
|
|
12
|
-
## Work Log
|
|
13
|
-
|
|
14
|
-
- 2025-11-27T00:00:00Z Started: Created plan at `.safeword/planning/005-architecture-enforcement-system.md`
|
|
15
|
-
- 2025-11-27T00:00:00Z Decision: Extend `setup-linting.sh` for eslint-plugin-boundaries (not new script)
|
|
16
|
-
- 2025-11-27T00:00:00Z Decision: Add layers/boundaries section to existing `architecture-guide.md`
|
|
17
|
-
- 2025-11-27T00:00:00Z Decision: Create `prompts/` folder, extract existing quality-review prompt from `setup-quality.sh`
|
|
18
|
-
- 2025-11-27T00:00:00Z Decision: Drop Biome support entirely, ESLint-only with eslint-plugin-boundaries
|
|
19
|
-
- 2025-11-27 Implementation completed:
|
|
20
|
-
- Phase 1: Added Layers & Boundaries section to `architecture-guide.md`, created `templates/architecture-template.md`
|
|
21
|
-
- Phase 2: Updated `setup-linting.sh` - removed Biome mode, added eslint-plugin-boundaries to all ESLint modes
|
|
22
|
-
- Phase 3: Created `framework/prompts/` with quality-review.md and arch-review.md, created `scripts/arch-review.sh`, updated setup-safeword.sh and setup-quality.sh
|
|
23
|
-
- Phase 4: Created `templates/ci/architecture-check.yml`
|
|
24
|
-
|
|
25
|
-
---
|
|
26
|
-
|
|
27
|
-
## Planning Docs
|
|
28
|
-
|
|
29
|
-
- `.safeword/planning/005-architecture-enforcement-system.md` - Full plan with phases, deliverables, tool selection
|
|
30
|
-
|
|
31
|
-
## User Stories
|
|
32
|
-
|
|
33
|
-
**Source:** Stories 1-11 from `001-guides-review-user-stories.md` (documentation guidance). Stories 12-19 added for enforcement/tooling.
|
|
34
|
-
|
|
35
|
-
---
|
|
36
|
-
|
|
37
|
-
### Story 12: Layer Definition Guidance ✅
|
|
38
|
-
|
|
39
|
-
**As a** developer setting up a new project
|
|
40
|
-
**I want** clear layer definitions (app, domain, infra, shared) with responsibilities
|
|
41
|
-
**So that** I know how to organize code from the start
|
|
42
|
-
|
|
43
|
-
**Acceptance Criteria:**
|
|
44
|
-
|
|
45
|
-
- [x] Layer definitions table in `architecture-guide.md`
|
|
46
|
-
- [x] Each layer has directory and responsibility defined
|
|
47
|
-
- [x] `architecture-template.md` includes same structure
|
|
48
|
-
|
|
49
|
-
---
|
|
50
|
-
|
|
51
|
-
### Story 13: Dependency Rules ✅
|
|
52
|
-
|
|
53
|
-
**As a** developer writing cross-layer code
|
|
54
|
-
**I want** an allowed dependencies matrix showing what can import what
|
|
55
|
-
**So that** I avoid circular dependencies and leaky abstractions
|
|
56
|
-
|
|
57
|
-
**Acceptance Criteria:**
|
|
58
|
-
|
|
59
|
-
- [x] Matrix shows from/to/allowed/rationale
|
|
60
|
-
- [x] Forbidden imports marked with ❌
|
|
61
|
-
- [x] Rationale explains why each rule exists
|
|
62
|
-
|
|
63
|
-
---
|
|
64
|
-
|
|
65
|
-
### Story 14: Edge Case Handling ✅
|
|
66
|
-
|
|
67
|
-
**As a** developer with non-standard project structure
|
|
68
|
-
**I want** documented edge cases (brownfield, monorepo, non-3-layer)
|
|
69
|
-
**So that** I can adapt boundary rules to my situation
|
|
70
|
-
|
|
71
|
-
**Acceptance Criteria:**
|
|
72
|
-
|
|
73
|
-
- [x] Edge cases table in guide
|
|
74
|
-
- [x] Solutions for each scenario
|
|
75
|
-
- [x] Brownfield adoption path (warnings-only → incremental fix → enforce)
|
|
76
|
-
|
|
77
|
-
---
|
|
78
|
-
|
|
79
|
-
### Story 15: Static Boundary Enforcement ✅
|
|
80
|
-
|
|
81
|
-
**As a** developer
|
|
82
|
-
**I want** boundary violations caught by ESLint
|
|
83
|
-
**So that** I see errors immediately in IDE and CI
|
|
84
|
-
|
|
85
|
-
**Acceptance Criteria:**
|
|
86
|
-
|
|
87
|
-
- [x] `eslint-plugin-boundaries` added by `setup-linting.sh`
|
|
88
|
-
- [x] Setup instructions + common issues in `architecture-guide.md`
|
|
89
|
-
|
|
90
|
-
---
|
|
91
|
-
|
|
92
|
-
### Story 16: LLM Architecture Review ✅
|
|
93
|
-
|
|
94
|
-
**As a** developer committing changes
|
|
95
|
-
**I want** an LLM to review for architectural anti-patterns
|
|
96
|
-
**So that** semantic issues are caught that static analysis misses
|
|
97
|
-
|
|
98
|
-
**Acceptance Criteria:**
|
|
99
|
-
|
|
100
|
-
- [x] `arch-review.sh` calls Haiku API
|
|
101
|
-
- [x] Returns JSON verdict: `clean` | `minor` | `refactor_needed`
|
|
102
|
-
- [x] Reviews against `ARCHITECTURE.md` if present
|
|
103
|
-
- [x] Checks for: misplaced logic, god modules, leaky abstractions, tight coupling, boundary violations
|
|
104
|
-
|
|
105
|
-
---
|
|
106
|
-
|
|
107
|
-
### Story 17: Pre-commit Enforcement ✅
|
|
108
|
-
|
|
109
|
-
**As a** developer
|
|
110
|
-
**I want** boundary violations to block my commit
|
|
111
|
-
**So that** architectural issues are caught before code review
|
|
112
|
-
|
|
113
|
-
**Acceptance Criteria:**
|
|
114
|
-
|
|
115
|
-
- [x] Pre-commit hook runs eslint + arch-review.sh
|
|
116
|
-
- [x] Lint errors block commit
|
|
117
|
-
- [x] `refactor_needed` verdict blocks commit
|
|
118
|
-
- [x] `minor` verdict warns but allows commit
|
|
119
|
-
|
|
120
|
-
---
|
|
121
|
-
|
|
122
|
-
### Story 18: CI Architecture Check ✅
|
|
123
|
-
|
|
124
|
-
**As a** team lead
|
|
125
|
-
**I want** PRs checked for boundary violations in CI
|
|
126
|
-
**So that** architectural issues can't slip through code review
|
|
127
|
-
|
|
128
|
-
**Acceptance Criteria:**
|
|
129
|
-
|
|
130
|
-
- [x] `architecture-check.yml` template provided
|
|
131
|
-
- [x] Runs tsc, eslint (with boundaries), optional LLM review
|
|
132
|
-
- [x] LLM review is non-blocking (advisory only)
|
|
133
|
-
|
|
134
|
-
---
|
|
135
|
-
|
|
136
|
-
### Story 19: Architecture Template ✅
|
|
137
|
-
|
|
138
|
-
**As a** developer starting a new project
|
|
139
|
-
**I want** a pre-filled `ARCHITECTURE.md` template
|
|
140
|
-
**So that** I have the right structure without starting from scratch
|
|
141
|
-
|
|
142
|
-
**Acceptance Criteria:**
|
|
143
|
-
|
|
144
|
-
- [x] All required sections present (Overview, Layers, Data Model, Decisions, Best Practices, Migration)
|
|
145
|
-
- [x] Layers & dependencies pre-filled (same rules as guide)
|
|
146
|
-
- [x] Key Decisions format: What/Why/Trade-off/Alternatives
|
|
147
|
-
|
|
148
|
-
---
|
|
149
|
-
|
|
150
|
-
### Prior Stories (Documentation Guidance)
|
|
151
|
-
|
|
152
|
-
From `001-guides-review-user-stories.md` → `### architecture-guide.md`:
|
|
153
|
-
|
|
154
|
-
| # | Story | Summary | Status |
|
|
155
|
-
| --- | ------------------------------------- | ---------------------------------------------- | ------ |
|
|
156
|
-
| 1 | Single Comprehensive Architecture Doc | One `ARCHITECTURE.md` per project at root | ✅ |
|
|
157
|
-
| 2 | Design Doc Simplicity | Design docs reference arch doc, no duplication | ✅ |
|
|
158
|
-
| 3 | Decision Matrix | Tech/data → arch doc; feature → design doc | ✅ |
|
|
159
|
-
| 4 | Code References | Key patterns linked to files with line ranges | ✅ |
|
|
160
|
-
| 6 | TDD Workflow Integration | Architecture doc reviewed before coding | ✅ |
|
|
161
|
-
| 8 | Triggers to Update Architecture Doc | New data models, tech choices trigger updates | ✅ |
|
|
162
|
-
| 9 | Common Mistakes | No ADR sprawl; keep one comprehensive doc | ✅ |
|
|
163
|
-
| 11 | Data Architecture Guidance | Linked guide for data-heavy projects | ✅ |
|
|
164
|
-
|
|
165
|
-
---
|
|
166
|
-
|
|
167
|
-
## Scope
|
|
168
|
-
|
|
169
|
-
**In scope:**
|
|
170
|
-
|
|
171
|
-
- Phase 1: Add layers/boundaries section to `architecture-guide.md` + create `templates/architecture-template.md`
|
|
172
|
-
- Phase 2: Add `eslint-plugin-boundaries` to `setup-linting.sh` + remove `--biome` mode (breaking change)
|
|
173
|
-
- Phase 3: Create `prompts/` folder + `arch-review.sh` script + git pre-commit hook
|
|
174
|
-
- Phase 4: CI workflow template `templates/ci/architecture-check.yml`
|
|
175
|
-
|
|
176
|
-
**Out of scope:**
|
|
177
|
-
|
|
178
|
-
- Phase 5 (Drift detection) - Deferred
|
|
179
|
-
- Python support - Future phase
|
|
180
|
-
- Biome support (dropped - ESLint only)
|
|
181
|
-
|
|
182
|
-
## Acceptance Criteria
|
|
183
|
-
|
|
184
|
-
- [x] `architecture-guide.md` has Layers & Boundaries section with:
|
|
185
|
-
- [x] Layer definitions table
|
|
186
|
-
- [x] Allowed dependencies matrix
|
|
187
|
-
- [x] Edge cases (non-3-layer, brownfield, shared utilities)
|
|
188
|
-
- [x] `templates/architecture-template.md` created with layers/boundaries section
|
|
189
|
-
- [x] `setup-linting.sh` adds `eslint-plugin-boundaries` to all ESLint modes
|
|
190
|
-
- [x] `setup-linting.sh` removes `--biome` mode (breaking change)
|
|
191
|
-
- [x] `architecture-guide.md` includes boundary rule setup instructions
|
|
192
|
-
- [x] `framework/prompts/` folder created (copied to `.safeword/prompts/` by setup)
|
|
193
|
-
- [x] `prompts/quality-review.md` extracted from `setup-quality.sh`
|
|
194
|
-
- [x] `prompts/arch-review.md` - semantic architecture review prompt
|
|
195
|
-
- [x] `scripts/arch-review.sh` - calls Haiku API for arch review
|
|
196
|
-
- [x] Git pre-commit hook runs `eslint` + `arch-review.sh` on staged files
|
|
197
|
-
- [x] `setup-safeword.sh` updated to copy `prompts/` folder + install pre-commit hook
|
|
198
|
-
- [x] `setup-quality.sh` updated to reference `.safeword/prompts/quality-review.md`
|
|
199
|
-
- [x] `templates/ci/architecture-check.yml` GitHub Actions workflow
|
|
200
|
-
- [ ] All tests pass
|
|
201
|
-
- [ ] User confirms completion
|
|
202
|
-
|
|
203
|
-
## Implementation Notes
|
|
204
|
-
|
|
205
|
-
**Key Design Decisions:**
|
|
206
|
-
|
|
207
|
-
- ESLint-only (drop Biome support) - simpler, better IDE integration
|
|
208
|
-
- Boundaries via `eslint-plugin-boundaries` - integrated with existing linting
|
|
209
|
-
- Add to existing `architecture-guide.md` rather than new guide (single source of truth)
|
|
210
|
-
- Prompts return structured JSON (per `llm-prompting.md` best practices)
|
|
211
|
-
- Template allows direct app→infra (note hexagonal alternative)
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: 003
|
|
3
|
-
status: todo
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Reactive Fix Prevention
|
|
7
|
-
|
|
8
|
-
**Goal:** Stop agents from falling into "error-fix-error" loops by forcing architectural awareness and planning before changes.
|
|
9
|
-
|
|
10
|
-
**Why:** Without guardrails, agents fix reactively—creating cascading problems, ignoring root causes, and violating architectural boundaries.
|
|
11
|
-
|
|
12
|
-
## Work Log
|
|
13
|
-
|
|
14
|
-
**Purpose:** Track what you've tried so you don't repeat dead ends or lose context.
|
|
15
|
-
|
|
16
|
-
**CRITICAL: Re-read this ticket before each significant action to stay on track.**
|
|
17
|
-
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
- 2025-11-27T12:00:00Z Started: Created ticket based on AI research into reactive fix patterns
|
|
21
|
-
- 2025-11-27T12:00:00Z Research: Reviewed MASAI, ProSEA, Factored Agents papers + DEV.to article
|
|
22
|
-
- 2025-11-27T12:00:00Z Finding: Documentation alone insufficient—need active enforcement + planning phases
|
|
23
|
-
- 2025-11-27T12:00:00Z Created: Research summary at `.safeword/planning/006-reactive-fix-prevention-research.md`
|
|
24
|
-
- 2025-11-27T12:00:00Z Created: User stories at `.safeword/planning/user-stories/003-reactive-fix-prevention.md`
|
|
25
|
-
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
## Planning Docs
|
|
29
|
-
|
|
30
|
-
- `.safeword/planning/user-stories/003-reactive-fix-prevention.md`
|
|
31
|
-
- `.safeword/planning/006-reactive-fix-prevention-research.md`
|
|
32
|
-
|
|
33
|
-
## Scope
|
|
34
|
-
|
|
35
|
-
**In scope:**
|
|
36
|
-
|
|
37
|
-
- Add "Before ANY Error Fix" section to SAFEWORD.md
|
|
38
|
-
- Add "Red Flags (Stop and Think)" section to SAFEWORD.md
|
|
39
|
-
- Update systematic-debugging skill with architecture context loading
|
|
40
|
-
- Add reactive fix prevention guidance to code-philosophy.md
|
|
41
|
-
- Sync all changes to packages/cli/templates/
|
|
42
|
-
|
|
43
|
-
**Out of scope:**
|
|
44
|
-
|
|
45
|
-
- New tooling (covered by ticket 002)
|
|
46
|
-
- CI integration (covered by ticket 002)
|
|
47
|
-
- Automated change counting hooks (future enhancement)
|
|
48
|
-
|
|
49
|
-
## Acceptance Criteria
|
|
50
|
-
|
|
51
|
-
- [ ] User stories complete and validated
|
|
52
|
-
- [ ] "Before ANY Error Fix" section in SAFEWORD.md
|
|
53
|
-
- [ ] "Red Flags (Stop and Think)" section in SAFEWORD.md
|
|
54
|
-
- [ ] systematic-debugging skill updated with architecture context loading step
|
|
55
|
-
- [ ] code-philosophy.md updated with reactive fix prevention
|
|
56
|
-
- [ ] Changes synced to packages/cli/templates/
|
|
57
|
-
- [ ] User confirms completion
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: 004
|
|
3
|
-
status: done
|
|
4
|
-
created: 2025-11-27T14:00:00Z
|
|
5
|
-
last_modified: 2025-11-27T14:30:00Z
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Technical Constraints in User Stories
|
|
9
|
-
|
|
10
|
-
**Goal:** Capture non-functional requirements (NFRs) in user stories before test definitions, so tests are informed by performance, security, and compatibility constraints.
|
|
11
|
-
|
|
12
|
-
**Why:** Without explicit constraints, agents write tests that verify behavior but miss NFRs—resulting in code that "works" but fails in production (slow, insecure, incompatible).
|
|
13
|
-
|
|
14
|
-
## Work Log
|
|
15
|
-
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
- 2025-11-27T14:30:00Z Complete: All files updated, ready for user confirmation
|
|
19
|
-
- 2025-11-27T14:25:00Z Updated: SAFEWORD.md workflow step 1, creation trigger, edge cases
|
|
20
|
-
- 2025-11-27T14:20:00Z Updated: tdd-best-practices.md with example including constraints
|
|
21
|
-
- 2025-11-27T14:15:00Z Updated: user-story-guide.md with constraints guidance section
|
|
22
|
-
- 2025-11-27T14:10:00Z Updated: user-stories-template.md with Technical Constraints section
|
|
23
|
-
- 2025-11-27T14:05:00Z Decision: Option A (add to user stories) vs Option B (separate doc) - chose A for simplicity
|
|
24
|
-
- 2025-11-27T14:00:00Z Started: User asked about capturing technical requirements before test definitions in TDD
|
|
25
|
-
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
### Planning Docs
|
|
29
|
-
|
|
30
|
-
- .safeword/planning/user-stories/004-technical-constraints.md
|
|
31
|
-
|
|
32
|
-
### Acceptance Criteria
|
|
33
|
-
|
|
34
|
-
- [x] User stories template includes Technical Constraints section
|
|
35
|
-
- [x] User story guide explains how to fill out constraints
|
|
36
|
-
- [x] TDD best practices includes example with constraints
|
|
37
|
-
- [x] SAFEWORD.md workflow mentions constraints
|
|
38
|
-
- [x] Sync framework/SAFEWORD.md to .safeword/SAFEWORD.md
|
|
39
|
-
- [ ] User confirms completion
|
|
@@ -1,248 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: 005
|
|
3
|
-
status: pending
|
|
4
|
-
created: 2025-11-27
|
|
5
|
-
github: https://github.com/TheMostlyGreat/safeword/issues/1
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Implement TypeScript CLI
|
|
9
|
-
|
|
10
|
-
**Goal:** Ship TypeScript CLI (`safeword`) that replaces bash scripts with elite developer experience.
|
|
11
|
-
|
|
12
|
-
**Why:** Bash scripts are hard to maintain, test, and extend. CLI improves DX for setup, verification, and team onboarding.
|
|
13
|
-
|
|
14
|
-
## Planning Docs
|
|
15
|
-
|
|
16
|
-
- [CLI UX Vision](../planning/011-cli-ux-vision.md) — All decisions and architecture
|
|
17
|
-
|
|
18
|
-
## Key Decisions
|
|
19
|
-
|
|
20
|
-
| Decision | Choice |
|
|
21
|
-
| -------------------- | ---------------------------------------------- |
|
|
22
|
-
| Package | `safeword` |
|
|
23
|
-
| Commands | setup, check, upgrade, diff, reset |
|
|
24
|
-
| Global flags | `--version`, `--help` |
|
|
25
|
-
| Non-interactive | Auto-TTY + `--yes` |
|
|
26
|
-
| Existing config | Error: "Run `safeword upgrade`" |
|
|
27
|
-
| Same-version upgrade | Force reinstall |
|
|
28
|
-
| Linting failure | Core failure, exit 1 |
|
|
29
|
-
| No git | Prompt (auto-skip with `--yes`) |
|
|
30
|
-
| AGENTS.md | Prepend link (LLM primacy) |
|
|
31
|
-
| AGENTS.md check | SessionStart hook verifies, re-adds if missing |
|
|
32
|
-
| package.json | Add lint/format scripts |
|
|
33
|
-
| Reset confirm | Prompt (auto-confirm with `--yes`) |
|
|
34
|
-
| Skill conflict | Overwrite silently |
|
|
35
|
-
| Diff output | Summary + `--verbose` |
|
|
36
|
-
|
|
37
|
-
## Scope
|
|
38
|
-
|
|
39
|
-
### v1 Commands
|
|
40
|
-
|
|
41
|
-
| Command | Purpose |
|
|
42
|
-
| -------------------- | ---------------------------------- |
|
|
43
|
-
| `safeword` | Show help |
|
|
44
|
-
| `safeword --version` | Show CLI version |
|
|
45
|
-
| `safeword setup` | Full setup (error if exists) |
|
|
46
|
-
| `safeword check` | Health + versions |
|
|
47
|
-
| `safeword upgrade` | Update project (always reinstalls) |
|
|
48
|
-
| `safeword diff` | Preview changes |
|
|
49
|
-
| `safeword reset` | Remove (prompts confirm) |
|
|
50
|
-
|
|
51
|
-
### Flags
|
|
52
|
-
|
|
53
|
-
- `--version` — Show CLI version (global)
|
|
54
|
-
- `--help` — Show help (global)
|
|
55
|
-
- `--yes` — Accept defaults (skip prompts, auto-confirm)
|
|
56
|
-
- `--verbose` — Detailed output (diff)
|
|
57
|
-
- `--offline` — Skip version check (check)
|
|
58
|
-
|
|
59
|
-
### Setup Flow
|
|
60
|
-
|
|
61
|
-
1. Check existing → error if found
|
|
62
|
-
2. Detect project type
|
|
63
|
-
3. Copy templates to `.safeword/`
|
|
64
|
-
4. Register Claude Code hooks (incl. SessionStart for AGENTS.md check)
|
|
65
|
-
5. Copy skills to `.claude/skills/safeword-*/`
|
|
66
|
-
6. Install + configure linting (exit 1 if fails)
|
|
67
|
-
7. Add lint/format scripts to package.json
|
|
68
|
-
8. Handle git (prompt or auto-skip)
|
|
69
|
-
9. Prepend link to `AGENTS.md` (create if missing)
|
|
70
|
-
|
|
71
|
-
### Commands on Unconfigured
|
|
72
|
-
|
|
73
|
-
| Command | Behavior |
|
|
74
|
-
| --------- | ---------------------------- |
|
|
75
|
-
| `check` | "Not configured" (exit 0) |
|
|
76
|
-
| `diff` | Error (exit 1) |
|
|
77
|
-
| `reset` | "Nothing to remove" (exit 0) |
|
|
78
|
-
| `upgrade` | Error (exit 1) |
|
|
79
|
-
|
|
80
|
-
### Out of Scope (v1.x)
|
|
81
|
-
|
|
82
|
-
- `safeword doctor`
|
|
83
|
-
- Claude Code plugin wrapper
|
|
84
|
-
- MCP server management
|
|
85
|
-
- Per-package monorepo support
|
|
86
|
-
- CLAUDE.md handling (only AGENTS.md)
|
|
87
|
-
|
|
88
|
-
## Acceptance Criteria
|
|
89
|
-
|
|
90
|
-
- [ ] `npx safeword --version` shows version
|
|
91
|
-
- [ ] `npx safeword setup` works (interactive)
|
|
92
|
-
- [ ] `npx safeword setup --yes` works (non-interactive)
|
|
93
|
-
- [ ] Auto-detects no-TTY and uses defaults
|
|
94
|
-
- [ ] Setup errors if `.safeword/` exists
|
|
95
|
-
- [ ] Prompts to init git if missing
|
|
96
|
-
- [ ] Prepends link to `AGENTS.md`
|
|
97
|
-
- [ ] SessionStart hook checks AGENTS.md, re-adds if missing
|
|
98
|
-
- [ ] Full linting setup (exit 1 if fails)
|
|
99
|
-
- [ ] Adds lint/format scripts to package.json
|
|
100
|
-
- [ ] `npx safeword check` shows health + versions
|
|
101
|
-
- [ ] `check` on unconfigured shows "Not configured"
|
|
102
|
-
- [ ] Version check gracefully handles offline
|
|
103
|
-
- [ ] `npx safeword upgrade` always reinstalls
|
|
104
|
-
- [ ] `npx safeword diff` shows summary
|
|
105
|
-
- [ ] `npx safeword diff --verbose` shows full diff
|
|
106
|
-
- [ ] `diff` on unconfigured errors
|
|
107
|
-
- [ ] `npx safeword reset` prompts for confirm
|
|
108
|
-
- [ ] `npx safeword reset --yes` auto-confirms
|
|
109
|
-
- [ ] `reset` on unconfigured says "Nothing to remove"
|
|
110
|
-
- [ ] Reset removes line from `AGENTS.md`
|
|
111
|
-
- [ ] Preserves existing Claude Code hooks
|
|
112
|
-
- [ ] Preserves existing git pre-commit hooks
|
|
113
|
-
- [ ] Refuses to downgrade project
|
|
114
|
-
- [ ] Exit 0 with warnings for partial success
|
|
115
|
-
- [ ] Exit 1 for core failures
|
|
116
|
-
- [ ] Published to npm as `safeword`
|
|
117
|
-
- [ ] README updated
|
|
118
|
-
- [ ] Tested in 3+ real projects
|
|
119
|
-
|
|
120
|
-
## Technical Notes
|
|
121
|
-
|
|
122
|
-
### File Structure
|
|
123
|
-
|
|
124
|
-
```
|
|
125
|
-
.safeword/
|
|
126
|
-
SAFEWORD.md, version, README.md
|
|
127
|
-
hooks/, skills/, guides/, scripts/, prompts/, templates/
|
|
128
|
-
|
|
129
|
-
.claude/
|
|
130
|
-
settings.json
|
|
131
|
-
skills/safeword-*/
|
|
132
|
-
|
|
133
|
-
.git/hooks/
|
|
134
|
-
pre-commit (if git)
|
|
135
|
-
|
|
136
|
-
AGENTS.md (link prepended at top)
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
### Non-Interactive Behavior
|
|
140
|
-
|
|
141
|
-
- No TTY → auto-defaults
|
|
142
|
-
- `--yes` → force defaults in terminal
|
|
143
|
-
- Defaults: skip git init, auto-confirm reset
|
|
144
|
-
|
|
145
|
-
### Exit Codes
|
|
146
|
-
|
|
147
|
-
- 0 = Success (warnings OK)
|
|
148
|
-
- 1 = Core failure
|
|
149
|
-
|
|
150
|
-
### Hook Coexistence
|
|
151
|
-
|
|
152
|
-
- Claude: Append/remove by path pattern
|
|
153
|
-
- Git: Marker-based (`SAFEWORD_ARCH_CHECK_START/END`)
|
|
154
|
-
|
|
155
|
-
### AGENTS.md Handling
|
|
156
|
-
|
|
157
|
-
- Setup: Prepend link (check for duplicates first)
|
|
158
|
-
- SessionStart: Verify link exists, re-add with alert if missing
|
|
159
|
-
- Reset: Search exact string, remove
|
|
160
|
-
- Only AGENTS.md (not CLAUDE.md)
|
|
161
|
-
|
|
162
|
-
### package.json Scripts
|
|
163
|
-
|
|
164
|
-
```json
|
|
165
|
-
{
|
|
166
|
-
"scripts": {
|
|
167
|
-
"lint": "eslint .",
|
|
168
|
-
"format": "prettier --write ."
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
**Note:** Reset leaves these intact (standard CLI behavior). User removes manually if wanted.
|
|
174
|
-
|
|
175
|
-
## Refactor Plan
|
|
176
|
-
|
|
177
|
-
Minimal refactoring to improve code quality while keeping all 88 tests green.
|
|
178
|
-
|
|
179
|
-
### 1. Extract Version Utilities
|
|
180
|
-
|
|
181
|
-
**Why:** `compareVersions` in `upgrade.ts` and `isNewerVersion` in `check.ts` duplicate semver comparison logic.
|
|
182
|
-
|
|
183
|
-
**Changes:**
|
|
184
|
-
|
|
185
|
-
- Create `src/utils/version.ts` with:
|
|
186
|
-
- `compareVersions(a: string, b: string): -1 | 0 | 1`
|
|
187
|
-
- `isNewerVersion(current: string, latest: string): boolean`
|
|
188
|
-
- Update `upgrade.ts` to import `compareVersions`
|
|
189
|
-
- Update `check.ts` to import `isNewerVersion`
|
|
190
|
-
- Remove duplicate implementations
|
|
191
|
-
|
|
192
|
-
**Files affected:**
|
|
193
|
-
|
|
194
|
-
- `src/utils/version.ts` (new)
|
|
195
|
-
- `src/commands/upgrade.ts` (remove local function)
|
|
196
|
-
- `src/commands/check.ts` (remove local function)
|
|
197
|
-
|
|
198
|
-
### 2. Split Templates File
|
|
199
|
-
|
|
200
|
-
**Why:** `src/templates/index.ts` at 180+ lines mixes content templates with configuration objects.
|
|
201
|
-
|
|
202
|
-
**Changes:**
|
|
203
|
-
|
|
204
|
-
- Create `src/templates/content.ts` for markdown/script content:
|
|
205
|
-
- `SAFEWORD_MD`, `AGENTS_MD_LINK`, `PRETTIERRC`
|
|
206
|
-
- `HOOK_AGENTS_CHECK`, `HOOK_PRE_COMMIT`, `HOOK_POST_TOOL`
|
|
207
|
-
- `SKILL_QUALITY_REVIEWER`
|
|
208
|
-
- Create `src/templates/config.ts` for configuration:
|
|
209
|
-
- `getEslintConfig()`
|
|
210
|
-
- `SETTINGS_HOOKS`
|
|
211
|
-
- Update `src/templates/index.ts` to re-export all
|
|
212
|
-
|
|
213
|
-
**Files affected:**
|
|
214
|
-
|
|
215
|
-
- `src/templates/content.ts` (new)
|
|
216
|
-
- `src/templates/config.ts` (new)
|
|
217
|
-
- `src/templates/index.ts` (becomes re-export barrel)
|
|
218
|
-
|
|
219
|
-
### Verification
|
|
220
|
-
|
|
221
|
-
After each refactor:
|
|
222
|
-
|
|
223
|
-
1. `npx tsup` - must build successfully
|
|
224
|
-
2. `npx vitest run` - all 88 tests must pass
|
|
225
|
-
|
|
226
|
-
### Out of Scope
|
|
227
|
-
|
|
228
|
-
- Command structure changes (not worth the churn)
|
|
229
|
-
- Type improvements for hook filtering (works fine)
|
|
230
|
-
- Adding new abstractions (avoid over-engineering)
|
|
231
|
-
|
|
232
|
-
### Refactor Checklist
|
|
233
|
-
|
|
234
|
-
- [ ] Extract version utilities
|
|
235
|
-
- [ ] Verify tests pass
|
|
236
|
-
- [ ] Split templates file
|
|
237
|
-
- [ ] Verify tests pass
|
|
238
|
-
- [ ] Final review
|
|
239
|
-
|
|
240
|
-
## Work Log
|
|
241
|
-
|
|
242
|
-
- 2025-11-27 Created ticket
|
|
243
|
-
- 2025-11-27 Added UX vision decisions
|
|
244
|
-
- 2025-11-27 Final: TTY detection, `--yes` defaults, diff format, skill conflicts
|
|
245
|
-
- 2025-11-27 Final: --version, setup errors if exists, linting=exit 1, upgrade reinstalls
|
|
246
|
-
- 2025-11-27 Final: AGENTS.md prepend, SessionStart hook, package.json scripts, reset confirm, unconfigured behavior
|
|
247
|
-
- 2025-11-28 GREEN phase complete: All 88 tests passing
|
|
248
|
-
- 2025-11-28 Added refactor plan
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: 006
|
|
3
|
-
status: pending
|
|
4
|
-
created: 2025-11-27
|
|
5
|
-
github: https://github.com/TheMostlyGreat/safeword/issues/2
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Flesh Out Framework Skills
|
|
9
|
-
|
|
10
|
-
**Goal:** Expand `framework/skills/` with high-value skills from examples/superpowers.
|
|
11
|
-
|
|
12
|
-
**Why:** Only `quality-reviewer` exists in framework. Superpowers has 20+ battle-tested skills ready to port.
|
|
13
|
-
|
|
14
|
-
## Scope
|
|
15
|
-
|
|
16
|
-
**Priority skills to port:**
|
|
17
|
-
|
|
18
|
-
| Skill | Value | Complexity |
|
|
19
|
-
| -------------------------------- | ------------------------------ | ---------- |
|
|
20
|
-
| `systematic-debugging` | Prevents fix-by-guessing loops | Medium |
|
|
21
|
-
| `test-driven-development` | Core TDD workflow | Low |
|
|
22
|
-
| `verification-before-completion` | Prevents incomplete work | Low |
|
|
23
|
-
| `root-cause-tracing` | Debug methodology | Medium |
|
|
24
|
-
| `writing-plans` | Planning discipline | Low |
|
|
25
|
-
| `executing-plans` | Plan execution | Low |
|
|
26
|
-
| `brainstorming` | Creative problem solving | Low |
|
|
27
|
-
|
|
28
|
-
**Out of scope:**
|
|
29
|
-
|
|
30
|
-
- Agent-specific skills (dispatching-parallel-agents, subagent-driven-development)
|
|
31
|
-
- Git workflow skills (using-git-worktrees, finishing-a-development-branch)
|
|
32
|
-
- Meta skills (writing-skills, sharing-skills)
|
|
33
|
-
|
|
34
|
-
## Acceptance Criteria
|
|
35
|
-
|
|
36
|
-
- [ ] 5+ skills ported to framework/skills/
|
|
37
|
-
- [ ] Each skill has SKILL.md with clear triggers and protocol
|
|
38
|
-
- [ ] Skills work standalone (no superpowers dependency)
|
|
39
|
-
- [ ] README updated with skills section
|
|
40
|
-
|
|
41
|
-
## Work Log
|
|
42
|
-
|
|
43
|
-
- 2025-11-27 Created ticket
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: 007
|
|
3
|
-
status: pending
|
|
4
|
-
created: 2025-11-27
|
|
5
|
-
github: https://github.com/TheMostlyGreat/safeword/issues/3
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Flesh Out Questioning System
|
|
9
|
-
|
|
10
|
-
**Goal:** Improve the `ask_questions` functionality in quality review to be more strategic and useful.
|
|
11
|
-
|
|
12
|
-
**Why:** Current questioning is binary (on/off). Needs guidance on _what_ questions to ask and _when_.
|
|
13
|
-
|
|
14
|
-
## Current State
|
|
15
|
-
|
|
16
|
-
- `.auto-quality-review.config` has `ask_questions=true|false`
|
|
17
|
-
- Quality review prompt says "Ask me any non-obvious questions..."
|
|
18
|
-
- No guidance on question types, timing, or prioritization
|
|
19
|
-
|
|
20
|
-
## Scope
|
|
21
|
-
|
|
22
|
-
**Improvements:**
|
|
23
|
-
|
|
24
|
-
1. **Question taxonomy** - Types of questions (clarification, confirmation, scope, edge cases)
|
|
25
|
-
2. **Question triggers** - When to ask vs assume
|
|
26
|
-
3. **Question format** - How to phrase actionable questions
|
|
27
|
-
4. **Question limits** - Max questions per review (avoid question fatigue)
|
|
28
|
-
|
|
29
|
-
**Deliverables:**
|
|
30
|
-
|
|
31
|
-
- Questioning guide in `framework/guides/questioning-guide.md`
|
|
32
|
-
- Update quality-reviewer SKILL.md with questioning protocol
|
|
33
|
-
- Update quality review prompts
|
|
34
|
-
|
|
35
|
-
## Acceptance Criteria
|
|
36
|
-
|
|
37
|
-
- [ ] Guide defines question types with examples
|
|
38
|
-
- [ ] Clear triggers for when to ask
|
|
39
|
-
- [ ] Limit guidance (e.g., "max 2-3 questions per review")
|
|
40
|
-
- [ ] Quality reviewer SKILL.md references new guide
|
|
41
|
-
|
|
42
|
-
## Work Log
|
|
43
|
-
|
|
44
|
-
- 2025-11-27 Created ticket
|