eslint-plugin-traceability 1.1.0 → 1.1.2
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/lib/src/index.d.ts +80 -0
- package/lib/src/index.js +58 -0
- package/lib/src/maintenance/batch.d.ts +16 -0
- package/lib/src/maintenance/batch.js +28 -0
- package/lib/src/maintenance/detect.d.ts +6 -0
- package/lib/src/maintenance/detect.js +69 -0
- package/lib/src/maintenance/index.js +22 -0
- package/lib/src/maintenance/report.d.ts +7 -0
- package/lib/src/maintenance/report.js +17 -0
- package/lib/src/maintenance/update.d.ts +6 -0
- package/lib/src/maintenance/update.js +67 -0
- package/lib/src/maintenance/utils.d.ts +6 -0
- package/lib/src/maintenance/utils.js +64 -0
- package/lib/src/rules/require-branch-annotation.d.ts +7 -0
- package/lib/src/rules/require-branch-annotation.js +111 -0
- package/lib/src/rules/require-req-annotation.d.ts +7 -0
- package/lib/src/rules/require-req-annotation.js +38 -0
- package/lib/src/rules/require-story-annotation.d.ts +7 -0
- package/lib/src/rules/require-story-annotation.js +50 -0
- package/lib/src/rules/valid-annotation-format.d.ts +10 -0
- package/lib/src/rules/valid-annotation-format.js +60 -0
- package/lib/src/rules/valid-req-reference.d.ts +3 -0
- package/lib/src/rules/valid-req-reference.js +104 -0
- package/lib/src/rules/valid-story-reference.d.ts +3 -0
- package/lib/src/rules/valid-story-reference.js +168 -0
- package/lib/tests/fixtures/stale/example.d.ts +0 -0
- package/{tests/fixtures/stale/example.ts → lib/tests/fixtures/stale/example.js} +1 -0
- package/lib/tests/fixtures/update/example.d.ts +0 -0
- package/{tests/fixtures/update/example.ts → lib/tests/fixtures/update/example.js} +1 -0
- package/lib/tests/fixtures/valid-annotations/example.d.ts +0 -0
- package/{tests/fixtures/valid-annotations/example.ts → lib/tests/fixtures/valid-annotations/example.js} +1 -0
- package/lib/tests/maintenance/batch.test.d.ts +1 -0
- package/lib/tests/maintenance/batch.test.js +79 -0
- package/lib/tests/maintenance/detect-isolated.test.d.ts +1 -0
- package/lib/tests/maintenance/detect-isolated.test.js +95 -0
- package/lib/tests/maintenance/detect.test.d.ts +1 -0
- package/lib/tests/maintenance/detect.test.js +23 -0
- package/lib/tests/maintenance/report.test.d.ts +1 -0
- package/lib/tests/maintenance/report.test.js +67 -0
- package/lib/tests/maintenance/update-isolated.test.d.ts +1 -0
- package/lib/tests/maintenance/update-isolated.test.js +66 -0
- package/lib/tests/maintenance/update.test.d.ts +1 -0
- package/lib/tests/maintenance/update.test.js +26 -0
- package/lib/tests/plugin-default-export-and-configs.test.d.ts +1 -0
- package/lib/tests/plugin-default-export-and-configs.test.js +72 -0
- package/lib/tests/plugin-setup.test.d.ts +1 -0
- package/lib/tests/plugin-setup.test.js +51 -0
- package/lib/tests/rules/require-branch-annotation.test.d.ts +1 -0
- package/lib/tests/rules/require-branch-annotation.test.js +253 -0
- package/lib/tests/rules/require-req-annotation.test.d.ts +1 -0
- package/lib/tests/rules/require-req-annotation.test.js +41 -0
- package/lib/tests/rules/require-story-annotation.test.d.ts +1 -0
- package/lib/tests/rules/require-story-annotation.test.js +36 -0
- package/lib/tests/rules/valid-annotation-format.test.d.ts +1 -0
- package/lib/tests/rules/valid-annotation-format.test.js +58 -0
- package/lib/tests/rules/valid-req-reference.test.d.ts +1 -0
- package/lib/tests/rules/valid-req-reference.test.js +87 -0
- package/lib/tests/rules/valid-story-reference.test.d.ts +1 -0
- package/lib/tests/rules/valid-story-reference.test.js +69 -0
- package/package.json +6 -1
- package/.env.example +0 -6
- package/.github/workflows/ci-cd.yml +0 -107
- package/.husky/pre-commit +0 -1
- package/.husky/pre-push +0 -1
- package/.prettierignore +0 -27
- package/.prettierrc +0 -4
- package/.releaserc.json +0 -15
- package/.voder/history.md +0 -162
- package/.voder/implementation-progress.md +0 -144
- package/.voder/last-action.md +0 -83
- package/.voder/plan.md +0 -12
- package/.voder/progress-chart.png +0 -0
- package/.voder/progress-log-areas.csv +0 -39
- package/.voder/progress-log.csv +0 -38
- package/.voder/traceability/docs-stories-001.0-DEV-PLUGIN-SETUP.story.xml +0 -17
- package/.voder/traceability/docs-stories-002.0-DEV-ESLINT-CONFIG.story.xml +0 -13
- package/.voder/traceability/docs-stories-003.0-DEV-FUNCTION-ANNOTATIONS.story.xml +0 -9
- package/.voder/traceability/docs-stories-004.0-DEV-BRANCH-ANNOTATIONS.story.xml +0 -9
- package/.voder/traceability/docs-stories-005.0-DEV-ANNOTATION-VALIDATION.story.xml +0 -9
- package/.voder/traceability/docs-stories-006.0-DEV-FILE-VALIDATION.story.xml +0 -9
- package/.voder/traceability/docs-stories-007.0-DEV-ERROR-REPORTING.story.xml +0 -9
- package/.voder/traceability/docs-stories-008.0-DEV-AUTO-FIX.story.xml +0 -9
- package/.voder/traceability/docs-stories-009.0-DEV-MAINTENANCE-TOOLS.story.xml +0 -16
- package/.voder/traceability/docs-stories-010.0-DEV-DEEP-VALIDATION.story.xml +0 -11
- package/CHANGELOG.md +0 -57
- package/CONTRIBUTING.md +0 -99
- package/cli-integration.js +0 -103
- package/docs/cli-integration.md +0 -105
- package/docs/config-presets.md +0 -38
- package/docs/conventional-commits-guide.md +0 -185
- package/docs/decisions/001-typescript-for-eslint-plugin.accepted.md +0 -111
- package/docs/decisions/002-jest-for-eslint-testing.accepted.md +0 -137
- package/docs/decisions/003-code-quality-ratcheting-plan.md +0 -48
- package/docs/decisions/004-automated-version-bumping-for-ci-cd.md +0 -196
- package/docs/decisions/005-github-actions-validation-tooling.accepted.md +0 -144
- package/docs/decisions/006-semantic-release-for-automated-publishing.accepted.md +0 -227
- package/docs/eslint-9-setup-guide.md +0 -517
- package/docs/eslint-plugin-development-guide.md +0 -483
- package/docs/jest-testing-guide.md +0 -100
- package/docs/rules/require-branch-annotation.md +0 -34
- package/docs/rules/require-req-annotation.md +0 -39
- package/docs/rules/require-story-annotation.md +0 -36
- package/docs/rules/valid-annotation-format.md +0 -52
- package/docs/rules/valid-req-reference.md +0 -58
- package/docs/rules/valid-story-reference.md +0 -47
- package/docs/security-incidents/unresolved-vulnerabilities.md +0 -11
- package/docs/stories/001.0-DEV-PLUGIN-SETUP.story.md +0 -82
- package/docs/stories/002.0-DEV-ESLINT-CONFIG.story.md +0 -82
- package/docs/stories/003.0-DEV-FUNCTION-ANNOTATIONS.story.md +0 -85
- package/docs/stories/004.0-DEV-BRANCH-ANNOTATIONS.story.md +0 -107
- package/docs/stories/005.0-DEV-ANNOTATION-VALIDATION.story.md +0 -119
- package/docs/stories/006.0-DEV-FILE-VALIDATION.story.md +0 -127
- package/docs/stories/007.0-DEV-ERROR-REPORTING.story.md +0 -89
- package/docs/stories/008.0-DEV-AUTO-FIX.story.md +0 -104
- package/docs/stories/009.0-DEV-MAINTENANCE-TOOLS.story.md +0 -104
- package/docs/stories/010.0-DEV-DEEP-VALIDATION.story.md +0 -110
- package/docs/stories/developer-story.map.md +0 -118
- package/eslint.config.js +0 -146
- package/jest.config.js +0 -21
- package/scripts/smoke-test.sh +0 -45
- package/src/index.ts +0 -56
- package/src/maintenance/batch.ts +0 -29
- package/src/maintenance/detect.ts +0 -42
- package/src/maintenance/report.ts +0 -15
- package/src/maintenance/update.ts +0 -40
- package/src/maintenance/utils.ts +0 -28
- package/src/rules/require-branch-annotation.ts +0 -114
- package/src/rules/require-req-annotation.ts +0 -36
- package/src/rules/require-story-annotation.ts +0 -52
- package/src/rules/valid-annotation-format.ts +0 -62
- package/src/rules/valid-req-reference.ts +0 -114
- package/src/rules/valid-story-reference.ts +0 -213
- package/tests/fixtures/story_bullet.md +0 -6
- package/tests/maintenance/batch.test.ts +0 -55
- package/tests/maintenance/detect-isolated.test.ts +0 -65
- package/tests/maintenance/detect.test.ts +0 -19
- package/tests/maintenance/report.test.ts +0 -37
- package/tests/maintenance/update-isolated.test.ts +0 -39
- package/tests/maintenance/update.test.ts +0 -21
- package/tests/plugin-default-export-and-configs.test.ts +0 -50
- package/tests/plugin-setup.test.ts +0 -17
- package/tests/rules/require-branch-annotation.test.ts +0 -250
- package/tests/rules/require-req-annotation.test.ts +0 -38
- package/tests/rules/require-story-annotation.test.ts +0 -33
- package/tests/rules/valid-annotation-format.test.ts +0 -55
- package/tests/rules/valid-req-reference.test.ts +0 -85
- package/tests/rules/valid-story-reference.test.ts +0 -66
- package/tsconfig.json +0 -15
- package/user-docs/api-reference.md +0 -135
- package/user-docs/examples.md +0 -73
- package/user-docs/migration-guide.md +0 -71
- /package/{src/maintenance/index.ts → lib/src/maintenance/index.d.ts} +0 -0
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
# 006.0-DEV-FILE-VALIDATION: Story File Reference Validation
|
|
2
|
-
|
|
3
|
-
## Release Goal
|
|
4
|
-
|
|
5
|
-
_Release 0.1: Core Validation - Provide essential ESLint rules that enforce @story and @req annotations on functions and code branches_
|
|
6
|
-
|
|
7
|
-
This story implements validation logic that verifies @story annotations reference actual story files that exist in the project and have the correct .story.md extension. It completes the core file reference validation needed to ensure traceability annotations point to valid, accessible story files.
|
|
8
|
-
|
|
9
|
-
## How This Story Contributes
|
|
10
|
-
|
|
11
|
-
This story completes the "Validate Annotations" journey phase by ensuring @story references point to actual files that exist and follow the required naming convention. It prevents broken traceability links and enables confident requirement validation, bridging the gap between code annotations and their corresponding story documentation.
|
|
12
|
-
|
|
13
|
-
## User Story
|
|
14
|
-
|
|
15
|
-
**Format**: So that I can ensure my @story annotations reference valid story files, as a Developer, I want validation that checks @story file paths exist, are accessible, and follow the .story.md naming convention.
|
|
16
|
-
|
|
17
|
-
**INVEST Criteria Compliance**:
|
|
18
|
-
|
|
19
|
-
- **Independent**: Can be developed after annotation format validation (depends on 001.0-005.0)
|
|
20
|
-
- **Negotiable**: File validation strictness and path resolution can be refined during implementation
|
|
21
|
-
- **Valuable**: Delivers confidence that traceability links point to valid documentation
|
|
22
|
-
- **Estimable**: Scope is clear - file system validation with defined path requirements
|
|
23
|
-
- **Small**: Can be completed within a single iteration/sprint
|
|
24
|
-
- **Testable**: File validation can be tested with various file system scenarios
|
|
25
|
-
|
|
26
|
-
## Acceptance Criteria
|
|
27
|
-
|
|
28
|
-
Use checkbox format for clear completion tracking:
|
|
29
|
-
|
|
30
|
-
- [ ] **Core Functionality**: Validates @story file paths reference existing .story.md files
|
|
31
|
-
- [ ] **Quality Standards**: Follows ESLint development best practices and handles file system operations safely
|
|
32
|
-
- [ ] **Integration**: Works with annotations validated by format validation (005.0)
|
|
33
|
-
- [ ] **User Experience**: Clear error messages indicate which files are missing or invalid
|
|
34
|
-
- [ ] **Error Handling**: Gracefully handles file system permissions, network drives, and edge cases
|
|
35
|
-
- [ ] **Documentation**: File validation specification with path resolution rules and examples
|
|
36
|
-
|
|
37
|
-
## Requirements (Current Implementation or To Be Implemented)
|
|
38
|
-
|
|
39
|
-
Document specific technical requirements using the format:
|
|
40
|
-
|
|
41
|
-
- **REQ-FILE-EXISTENCE**: Verify @story file paths reference existing files
|
|
42
|
-
- **REQ-PATH-RESOLUTION**: Resolve relative paths from project root or current file location
|
|
43
|
-
- **REQ-SECURITY-VALIDATION**: Prevent path traversal attacks and access to restricted directories
|
|
44
|
-
- **REQ-PERFORMANCE-OPTIMIZATION**: Efficient file system access with caching for repeated checks
|
|
45
|
-
- **REQ-PROJECT-BOUNDARY**: Validate files are within project boundaries
|
|
46
|
-
- **REQ-CONFIGURABLE-PATHS**: Support configurable story file directories and search patterns
|
|
47
|
-
|
|
48
|
-
## Dependencies
|
|
49
|
-
|
|
50
|
-
List other stories this story depends on, using numbered story references:
|
|
51
|
-
|
|
52
|
-
- 001.0-DEV-PLUGIN-SETUP (requires plugin structure foundation)
|
|
53
|
-
- 002.0-DEV-ESLINT-CONFIG (requires configuration system)
|
|
54
|
-
- 003.0-DEV-FUNCTION-ANNOTATIONS (uses annotations detected by function validation)
|
|
55
|
-
- 004.0-DEV-BRANCH-ANNOTATIONS (uses annotations detected by branch validation)
|
|
56
|
-
- 005.0-DEV-ANNOTATION-VALIDATION (requires properly formatted annotations)
|
|
57
|
-
|
|
58
|
-
**Dependency Rules**:
|
|
59
|
-
|
|
60
|
-
- Story numbers MUST be greater than all dependency story numbers
|
|
61
|
-
- Dependencies should be from in-scope stories when possible
|
|
62
|
-
- Cross-release dependencies should be clearly justified
|
|
63
|
-
- No circular dependencies allowed
|
|
64
|
-
|
|
65
|
-
## Implementation Notes (Optional)
|
|
66
|
-
|
|
67
|
-
Additional context for developers:
|
|
68
|
-
|
|
69
|
-
- Use Node.js fs/promises for async file system operations
|
|
70
|
-
- Implement path resolution relative to project root (where package.json/eslint.config.js exists)
|
|
71
|
-
- Support configurable story directories (e.g., docs/stories/, stories/, etc.)
|
|
72
|
-
- Cache file existence checks during single linting run for performance
|
|
73
|
-
- Implement security checks to prevent path traversal (../) outside project
|
|
74
|
-
- Handle various file system scenarios (case sensitivity, symbolic links, network drives)
|
|
75
|
-
- Provide helpful error messages with suggestions for fixing path issues
|
|
76
|
-
|
|
77
|
-
**Path Resolution Examples:**
|
|
78
|
-
|
|
79
|
-
Valid story file references:
|
|
80
|
-
|
|
81
|
-
```javascript
|
|
82
|
-
// @story docs/stories/001.0-DEV-EXAMPLE.story.md
|
|
83
|
-
// @story stories/feature.story.md
|
|
84
|
-
// @story ./local-story.story.md
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
Invalid references that should trigger validation errors:
|
|
88
|
-
|
|
89
|
-
```javascript
|
|
90
|
-
// @story ../outside-project.story.md (path traversal)
|
|
91
|
-
// @story docs/stories/missing.story.md (file doesn't exist)
|
|
92
|
-
// @story docs/stories/wrong-extension.md (wrong extension)
|
|
93
|
-
// @story /absolute/path.story.md (absolute path not allowed)
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
**Configuration Integration:**
|
|
97
|
-
|
|
98
|
-
```javascript
|
|
99
|
-
// eslint.config.js
|
|
100
|
-
export default [
|
|
101
|
-
{
|
|
102
|
-
plugins: { traceability },
|
|
103
|
-
rules: {
|
|
104
|
-
"traceability/valid-story-reference": [
|
|
105
|
-
"error",
|
|
106
|
-
{
|
|
107
|
-
storyDirectories: ["docs/stories", "stories"],
|
|
108
|
-
allowAbsolutePaths: false,
|
|
109
|
-
requireStoryExtension: true,
|
|
110
|
-
},
|
|
111
|
-
],
|
|
112
|
-
},
|
|
113
|
-
},
|
|
114
|
-
];
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
## Definition of Done
|
|
118
|
-
|
|
119
|
-
- [ ] All acceptance criteria met
|
|
120
|
-
- [ ] Code reviewed and approved
|
|
121
|
-
- [ ] Tests written and passing (file system scenarios, path resolution, security)
|
|
122
|
-
- [ ] Documentation updated (file validation rules and configuration options)
|
|
123
|
-
- [ ] Performance tested with large numbers of story files
|
|
124
|
-
- [ ] Security reviewed for path traversal and access control
|
|
125
|
-
- [ ] Ready for error reporting enhancement (007.0-DEV-ERROR-REPORTING)
|
|
126
|
-
|
|
127
|
-
---
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
# 007.0-DEV-ERROR-REPORTING: Clear Error Messages for Annotation Violations
|
|
2
|
-
|
|
3
|
-
## Release Goal
|
|
4
|
-
|
|
5
|
-
**Release 0.1: Core Validation** - Provide essential ESLint rules that enforce @story and @req annotations on functions and code branches, with validation that referenced files exist and contain the referenced requirements.
|
|
6
|
-
|
|
7
|
-
This story ensures developers receive clear, actionable feedback when traceability violations are detected, enabling quick resolution of annotation issues and supporting the overall goal of reliable traceability enforcement.
|
|
8
|
-
|
|
9
|
-
## How This Story Contributes
|
|
10
|
-
|
|
11
|
-
Clear error messages are critical for developer adoption and productivity. When annotation validation fails, developers need to understand exactly what's wrong and how to fix it. This story transforms technical validation failures into helpful guidance, reducing friction in maintaining traceability annotations and ensuring developers can quickly resolve issues without extensive debugging.
|
|
12
|
-
|
|
13
|
-
This story enables successful completion of the "Fix Issues" journey phase by providing the foundation for all error communication in the plugin.
|
|
14
|
-
|
|
15
|
-
## User Story
|
|
16
|
-
|
|
17
|
-
**Format**: So that I can quickly understand and fix traceability violations without wasting time debugging, as a Developer, I want the ESLint plugin to provide clear, specific error messages that explain what's wrong and suggest how to fix annotation issues.
|
|
18
|
-
|
|
19
|
-
**INVEST Criteria Compliance**:
|
|
20
|
-
|
|
21
|
-
- **Independent**: Can be developed using the validation logic from previous stories without blocking dependencies
|
|
22
|
-
- **Negotiable**: Error message formats and content can be refined based on developer feedback during implementation
|
|
23
|
-
- **Valuable**: Delivers clear value by reducing time spent debugging annotation issues
|
|
24
|
-
- **Estimable**: Scope is well-defined - enhance existing validation rules with improved messaging
|
|
25
|
-
- **Small**: Focused on message enhancement rather than new validation logic
|
|
26
|
-
- **Testable**: Error messages can be verified through unit tests and developer feedback
|
|
27
|
-
|
|
28
|
-
## Acceptance Criteria
|
|
29
|
-
|
|
30
|
-
- [ ] **Core Functionality**: All validation rules provide specific, actionable error messages instead of generic failures
|
|
31
|
-
- [ ] **Quality Standards**: Error messages follow ESLint best practices for clarity and consistency
|
|
32
|
-
- [ ] **Integration**: Error messages work properly with existing validation rules and ESLint reporting
|
|
33
|
-
- [ ] **User Experience**: Messages clearly identify the problem, location, and suggested fix
|
|
34
|
-
- [ ] **Error Handling**: Gracefully handles edge cases where error context is incomplete
|
|
35
|
-
- [ ] **Documentation**: Error message formats are documented for consistency across rules
|
|
36
|
-
|
|
37
|
-
## Requirements (Current Implementation or To Be Implemented)
|
|
38
|
-
|
|
39
|
-
- **REQ-ERROR-SPECIFIC**: Each validation failure provides specific details about what annotation is missing or invalid
|
|
40
|
-
- **REQ-ERROR-LOCATION**: Error messages include precise location information (function name, line number, file path)
|
|
41
|
-
- **REQ-ERROR-SUGGESTION**: Messages suggest concrete steps to fix the issue (e.g., "Add @story annotation" or "Fix file path")
|
|
42
|
-
- **REQ-ERROR-CONTEXT**: Error messages include relevant context (expected annotation format, available story files)
|
|
43
|
-
- **REQ-ERROR-CONSISTENCY**: All plugin rules use consistent error message format and terminology
|
|
44
|
-
- **REQ-ERROR-SEVERITY**: Error severity levels are appropriate (error for missing annotations, warning for format issues)
|
|
45
|
-
|
|
46
|
-
## Dependencies
|
|
47
|
-
|
|
48
|
-
- 003.0-DEV-FUNCTION-ANNOTATIONS (error reporting needs function annotation validation logic)
|
|
49
|
-
- 004.0-DEV-BRANCH-ANNOTATIONS (error reporting needs branch annotation validation logic)
|
|
50
|
-
- 005.0-DEV-ANNOTATION-VALIDATION (error reporting needs annotation format validation results)
|
|
51
|
-
- 006.0-DEV-FILE-VALIDATION (error reporting needs file validation results)
|
|
52
|
-
|
|
53
|
-
**Dependency Rules**:
|
|
54
|
-
|
|
55
|
-
- Story numbers MUST be greater than all dependency story numbers
|
|
56
|
-
- Dependencies should be from in-scope stories when possible
|
|
57
|
-
- Cross-release dependencies should be clearly justified
|
|
58
|
-
- No circular dependencies allowed
|
|
59
|
-
|
|
60
|
-
## Implementation Notes (Optional)
|
|
61
|
-
|
|
62
|
-
**Technical Considerations**:
|
|
63
|
-
|
|
64
|
-
- Use ESLint's context.report() method for consistent error reporting
|
|
65
|
-
- Implement error message templates for common validation failures
|
|
66
|
-
- Consider internationalization support for error messages
|
|
67
|
-
- Include suggestions using ESLint's suggest API where appropriate
|
|
68
|
-
|
|
69
|
-
**Integration Points**:
|
|
70
|
-
|
|
71
|
-
- Enhance existing validation rules from stories 003.0-006.0
|
|
72
|
-
- Integrate with ESLint's built-in error reporting and formatting
|
|
73
|
-
- Ensure compatibility with different ESLint output formats (stylish, json, etc.)
|
|
74
|
-
|
|
75
|
-
**Testing Strategy**:
|
|
76
|
-
|
|
77
|
-
- Unit tests for each error message scenario
|
|
78
|
-
- Integration tests with various code patterns
|
|
79
|
-
- Manual testing with developers for message clarity
|
|
80
|
-
- Verify error messages work in different IDEs and editors
|
|
81
|
-
|
|
82
|
-
## Definition of Done
|
|
83
|
-
|
|
84
|
-
- [ ] All acceptance criteria met
|
|
85
|
-
- [ ] Code reviewed and approved
|
|
86
|
-
- [ ] Tests written and passing
|
|
87
|
-
- [ ] Documentation updated
|
|
88
|
-
- [ ] Deployed to appropriate environment
|
|
89
|
-
- [ ] Stakeholder acceptance confirmed
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
# 008.0-DEV-AUTO-FIX: Simple Auto-Fixes for Annotation Issues
|
|
2
|
-
|
|
3
|
-
## Release Goal
|
|
4
|
-
|
|
5
|
-
**Release 0.1: Core Validation** - Provide essential ESLint rules that enforce @story and @req annotations on functions and code branches, with validation that referenced files exist and contain the referenced requirements.
|
|
6
|
-
|
|
7
|
-
This story enables developers to automatically fix common annotation issues through ESLint's auto-fix functionality, reducing manual effort and accelerating the adoption of traceability practices by making compliance as frictionless as possible.
|
|
8
|
-
|
|
9
|
-
## How This Story Contributes
|
|
10
|
-
|
|
11
|
-
Auto-fix capabilities transform the "Fix Issues" experience from manual correction to automated resolution for common problems. This dramatically reduces the friction of maintaining traceability annotations, especially when introducing the plugin to existing codebases with many annotation violations. By providing safe, automated fixes, this story enables teams to quickly achieve compliance and focus on higher-value activities.
|
|
12
|
-
|
|
13
|
-
This story completes the core "Fix Issues" journey phase by providing both clear error messages (007.0) and automated resolution capabilities.
|
|
14
|
-
|
|
15
|
-
## User Story
|
|
16
|
-
|
|
17
|
-
**Format**: So that I can quickly resolve common annotation issues without manual editing, as a Developer, I want the ESLint plugin to automatically fix standard annotation violations when I run ESLint with the --fix option.
|
|
18
|
-
|
|
19
|
-
**INVEST Criteria Compliance**:
|
|
20
|
-
|
|
21
|
-
- **Independent**: Can be developed using existing validation logic and error reporting from previous stories
|
|
22
|
-
- **Negotiable**: The set of auto-fixable issues and fix strategies can be refined during implementation
|
|
23
|
-
- **Valuable**: Delivers clear value by reducing manual work and speeding up compliance
|
|
24
|
-
- **Estimable**: Scope is well-defined - implement ESLint auto-fix for specific validation rules
|
|
25
|
-
- **Small**: Focused on a subset of fixable issues rather than all possible violations
|
|
26
|
-
- **Testable**: Auto-fixes can be verified through before/after code comparisons
|
|
27
|
-
|
|
28
|
-
## Acceptance Criteria
|
|
29
|
-
|
|
30
|
-
- [ ] **Core Functionality**: ESLint --fix automatically resolves common annotation violations
|
|
31
|
-
- [ ] **Quality Standards**: Auto-fixes are safe and preserve code functionality and formatting
|
|
32
|
-
- [ ] **Integration**: Auto-fix works properly with existing validation rules and ESLint toolchain
|
|
33
|
-
- [ ] **User Experience**: Fixes are applied consistently and predictably across different code patterns
|
|
34
|
-
- [ ] **Error Handling**: Gracefully handles edge cases where auto-fix cannot be applied safely
|
|
35
|
-
- [ ] **Documentation**: Auto-fix capabilities are documented with examples of fixable issues
|
|
36
|
-
|
|
37
|
-
## Requirements (Current Implementation or To Be Implemented)
|
|
38
|
-
|
|
39
|
-
- **REQ-AUTOFIX-MISSING**: Automatically add missing @story annotations to functions using template format
|
|
40
|
-
- **REQ-AUTOFIX-FORMAT**: Fix common annotation format issues (spacing, syntax, casing)
|
|
41
|
-
- **REQ-AUTOFIX-SAFE**: Only apply fixes that are guaranteed to be safe and non-destructive
|
|
42
|
-
- **REQ-AUTOFIX-PRESERVE**: Preserve existing code formatting, indentation, and comment structure
|
|
43
|
-
- **REQ-AUTOFIX-TEMPLATE**: Use configurable annotation templates for consistent formatting
|
|
44
|
-
- **REQ-AUTOFIX-SELECTIVE**: Allow developers to choose which types of fixes to enable/disable
|
|
45
|
-
|
|
46
|
-
## Dependencies
|
|
47
|
-
|
|
48
|
-
- 003.0-DEV-FUNCTION-ANNOTATIONS (auto-fix needs to understand function annotation requirements)
|
|
49
|
-
- 004.0-DEV-BRANCH-ANNOTATIONS (auto-fix needs to understand branch annotation requirements)
|
|
50
|
-
- 005.0-DEV-ANNOTATION-VALIDATION (auto-fix needs validation logic to identify fixable issues)
|
|
51
|
-
- 007.0-DEV-ERROR-REPORTING (auto-fix should integrate with error reporting for unfixable issues)
|
|
52
|
-
|
|
53
|
-
**Dependency Rules**:
|
|
54
|
-
|
|
55
|
-
- Story numbers MUST be greater than all dependency story numbers
|
|
56
|
-
- Dependencies should be from in-scope stories when possible
|
|
57
|
-
- Cross-release dependencies should be clearly justified
|
|
58
|
-
- No circular dependencies allowed
|
|
59
|
-
|
|
60
|
-
## Implementation Notes (Optional)
|
|
61
|
-
|
|
62
|
-
**Technical Considerations**:
|
|
63
|
-
|
|
64
|
-
- Use ESLint's fix API to provide automated corrections
|
|
65
|
-
- Implement fixer functions for each auto-fixable rule
|
|
66
|
-
- Consider code formatting preservation using AST manipulation
|
|
67
|
-
- Provide configuration options for auto-fix behavior
|
|
68
|
-
|
|
69
|
-
**Integration Points**:
|
|
70
|
-
|
|
71
|
-
- Enhance existing validation rules with fix capabilities
|
|
72
|
-
- Integrate with ESLint's --fix command line option
|
|
73
|
-
- Ensure compatibility with IDE auto-fix on save features
|
|
74
|
-
- Work with existing code formatters (Prettier, etc.)
|
|
75
|
-
|
|
76
|
-
**Safe Auto-Fix Scenarios**:
|
|
77
|
-
|
|
78
|
-
- Adding missing @story annotations with placeholder content
|
|
79
|
-
- Fixing annotation comment syntax (@story vs // @story)
|
|
80
|
-
- Correcting annotation format spacing and structure
|
|
81
|
-
- Standardizing annotation placement (before function vs inline)
|
|
82
|
-
|
|
83
|
-
**Non-Auto-Fixable Scenarios** (require manual intervention):
|
|
84
|
-
|
|
85
|
-
- Choosing appropriate story file references
|
|
86
|
-
- Adding specific requirement annotations
|
|
87
|
-
- Resolving file path issues that require developer knowledge
|
|
88
|
-
- Complex formatting conflicts with existing code style
|
|
89
|
-
|
|
90
|
-
**Testing Strategy**:
|
|
91
|
-
|
|
92
|
-
- Unit tests for each auto-fix scenario with before/after comparisons
|
|
93
|
-
- Integration tests with various code patterns and existing formatting
|
|
94
|
-
- Edge case testing for complex code structures
|
|
95
|
-
- Manual testing with real codebases to verify safety and effectiveness
|
|
96
|
-
|
|
97
|
-
## Definition of Done
|
|
98
|
-
|
|
99
|
-
- [ ] All acceptance criteria met
|
|
100
|
-
- [ ] Code reviewed and approved
|
|
101
|
-
- [ ] Tests written and passing
|
|
102
|
-
- [ ] Documentation updated
|
|
103
|
-
- [ ] Deployed to appropriate environment
|
|
104
|
-
- [ ] Stakeholder acceptance confirmed
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
# 009.0-DEV-MAINTENANCE-TOOLS: Update Helpers for Annotation Maintenance
|
|
2
|
-
|
|
3
|
-
## Release Goal
|
|
4
|
-
|
|
5
|
-
**Release 0.1: Core Validation** - Provide essential ESLint rules that enforce @story and @req annotations on functions and code branches, with validation that referenced files exist and contain the referenced requirements.
|
|
6
|
-
|
|
7
|
-
This story provides developers with helper tools and utilities to maintain traceability annotations as their codebase evolves, ensuring annotations remain accurate and up-to-date when story files are moved, renamed, or restructured.
|
|
8
|
-
|
|
9
|
-
## How This Story Contributes
|
|
10
|
-
|
|
11
|
-
As codebases grow and evolve, maintaining traceability annotations becomes an ongoing challenge. This story bridges the gap between initial compliance (achieved through validation and auto-fix) and long-term maintainability. By providing tools to update annotations when story files change, this story ensures that traceability systems remain valuable over time rather than becoming maintenance burdens.
|
|
12
|
-
|
|
13
|
-
This story initiates the "Maintain Quality" journey phase by providing foundational tools for ongoing annotation maintenance.
|
|
14
|
-
|
|
15
|
-
## User Story
|
|
16
|
-
|
|
17
|
-
**Format**: So that I can keep annotations accurate when story files are moved or renamed without manually hunting through code, as a Developer, I want helper tools that can batch update annotation references and detect when annotations become stale.
|
|
18
|
-
|
|
19
|
-
**INVEST Criteria Compliance**:
|
|
20
|
-
|
|
21
|
-
- **Independent**: Can be developed using existing validation logic and file system operations
|
|
22
|
-
- **Negotiable**: The specific maintenance tools and their interfaces can be refined during implementation
|
|
23
|
-
- **Valuable**: Delivers clear value by reducing manual maintenance work as projects evolve
|
|
24
|
-
- **Estimable**: Scope is well-defined - implement specific maintenance utilities
|
|
25
|
-
- **Small**: Focused on core maintenance scenarios rather than comprehensive project management
|
|
26
|
-
- **Testable**: Maintenance operations can be verified through before/after file comparisons
|
|
27
|
-
|
|
28
|
-
## Acceptance Criteria
|
|
29
|
-
|
|
30
|
-
- [ ] **Core Functionality**: Tools can detect and update annotation references when story files are moved or renamed
|
|
31
|
-
- [ ] **Quality Standards**: Maintenance operations preserve code functionality and formatting
|
|
32
|
-
- [ ] **Integration**: Tools work with existing project structure and ESLint configuration
|
|
33
|
-
- [ ] **User Experience**: Maintenance operations provide clear feedback about what was changed
|
|
34
|
-
- [ ] **Error Handling**: Gracefully handles edge cases like circular references or missing files
|
|
35
|
-
- [ ] **Documentation**: Maintenance tools are documented with usage examples and best practices
|
|
36
|
-
|
|
37
|
-
## Requirements (Current Implementation or To Be Implemented)
|
|
38
|
-
|
|
39
|
-
- **REQ-MAINT-DETECT**: Detect stale annotation references that point to moved or deleted story files
|
|
40
|
-
- **REQ-MAINT-UPDATE**: Update annotation references when story files are moved or renamed
|
|
41
|
-
- **REQ-MAINT-BATCH**: Perform batch updates across multiple files and annotations
|
|
42
|
-
- **REQ-MAINT-VERIFY**: Verify annotation references are still valid after maintenance operations
|
|
43
|
-
- **REQ-MAINT-REPORT**: Generate reports showing what annotations were updated and why
|
|
44
|
-
- **REQ-MAINT-SAFE**: Ensure maintenance operations are reversible and don't break existing functionality
|
|
45
|
-
|
|
46
|
-
## Dependencies
|
|
47
|
-
|
|
48
|
-
- 005.0-DEV-ANNOTATION-VALIDATION (maintenance tools need to understand annotation format)
|
|
49
|
-
- 006.0-DEV-FILE-VALIDATION (maintenance tools need file existence validation logic)
|
|
50
|
-
- 007.0-DEV-ERROR-REPORTING (maintenance tools should use consistent error reporting)
|
|
51
|
-
|
|
52
|
-
**Dependency Rules**:
|
|
53
|
-
|
|
54
|
-
- Story numbers MUST be greater than all dependency story numbers
|
|
55
|
-
- Dependencies should be from in-scope stories when possible
|
|
56
|
-
- Cross-release dependencies should be clearly justified
|
|
57
|
-
- No circular dependencies allowed
|
|
58
|
-
|
|
59
|
-
## Implementation Notes (Optional)
|
|
60
|
-
|
|
61
|
-
**Technical Considerations**:
|
|
62
|
-
|
|
63
|
-
- Implement CLI tools for common maintenance operations
|
|
64
|
-
- Use file system watching to detect when story files are moved or renamed
|
|
65
|
-
- Provide programmatic APIs for integration with project tooling
|
|
66
|
-
- Consider integration with Git hooks for automatic maintenance
|
|
67
|
-
|
|
68
|
-
**Integration Points**:
|
|
69
|
-
|
|
70
|
-
- Work with existing ESLint plugin infrastructure
|
|
71
|
-
- Integrate with project build and development workflows
|
|
72
|
-
- Provide hooks for custom maintenance automation
|
|
73
|
-
- Support various project structures and story file organization
|
|
74
|
-
|
|
75
|
-
**Common Maintenance Scenarios**:
|
|
76
|
-
|
|
77
|
-
- Story files moved to new directories (reorganization)
|
|
78
|
-
- Story files renamed for consistency or clarity
|
|
79
|
-
- Story files deleted (need to flag dependent annotations)
|
|
80
|
-
- Bulk updates when story numbering scheme changes
|
|
81
|
-
- Project restructuring that affects story file paths
|
|
82
|
-
|
|
83
|
-
**Maintenance Tool Types**:
|
|
84
|
-
|
|
85
|
-
- **Detection Tools**: Scan codebase for stale or invalid annotation references
|
|
86
|
-
- **Update Tools**: Batch update annotations to reflect file system changes
|
|
87
|
-
- **Verification Tools**: Validate that all annotations still point to valid story files
|
|
88
|
-
- **Migration Tools**: Help migrate from old annotation formats to new ones
|
|
89
|
-
|
|
90
|
-
**Testing Strategy**:
|
|
91
|
-
|
|
92
|
-
- Unit tests for each maintenance operation with various file scenarios
|
|
93
|
-
- Integration tests with real project structures and story file layouts
|
|
94
|
-
- Performance tests for large codebases with many annotations
|
|
95
|
-
- Manual testing with common maintenance workflows
|
|
96
|
-
|
|
97
|
-
## Definition of Done
|
|
98
|
-
|
|
99
|
-
- [ ] All acceptance criteria met
|
|
100
|
-
- [ ] Code reviewed and approved
|
|
101
|
-
- [ ] Tests written and passing
|
|
102
|
-
- [ ] Documentation updated
|
|
103
|
-
- [ ] Deployed to appropriate environment
|
|
104
|
-
- [ ] Stakeholder acceptance confirmed
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
# 010.0-DEV-DEEP-VALIDATION: Requirement Content Validation
|
|
2
|
-
|
|
3
|
-
## Release Goal
|
|
4
|
-
|
|
5
|
-
**Release 0.1: Core Validation** - Provide essential ESLint rules that enforce @story and @req annotations on functions and code branches, with validation that referenced files exist and contain the referenced requirements.
|
|
6
|
-
|
|
7
|
-
This story completes the validation framework by ensuring that @req annotations not only point to existing story files, but that the referenced requirements actually exist within those files. This provides complete end-to-end traceability validation from code annotations to actual requirement content.
|
|
8
|
-
|
|
9
|
-
## How This Story Contributes
|
|
10
|
-
|
|
11
|
-
While basic file validation (006.0) ensures story files exist, deep validation goes further to verify that the specific requirements referenced in @req annotations are actually present in the story files. This prevents broken traceability links where annotations point to valid files but non-existent requirements, ensuring the traceability system maintains integrity as requirements evolve.
|
|
12
|
-
|
|
13
|
-
This story completes the "Maintain Quality" journey phase and Release 0.1 by providing the most comprehensive validation possible, ensuring annotations remain meaningful and accurate.
|
|
14
|
-
|
|
15
|
-
## User Story
|
|
16
|
-
|
|
17
|
-
**Format**: So that I can trust that @req annotations point to actual requirements and not just valid files, as a Developer, I want the ESLint plugin to validate that referenced requirements exist within the target story files.
|
|
18
|
-
|
|
19
|
-
**INVEST Criteria Compliance**:
|
|
20
|
-
|
|
21
|
-
- **Independent**: Can be developed using existing file validation and annotation parsing logic
|
|
22
|
-
- **Negotiable**: The specific requirement matching strategies and formats can be refined during implementation
|
|
23
|
-
- **Valuable**: Delivers clear value by ensuring annotation accuracy and preventing broken traceability
|
|
24
|
-
- **Estimable**: Scope is well-defined - parse story files to validate requirement existence
|
|
25
|
-
- **Small**: Focused on requirement content validation rather than broader file analysis
|
|
26
|
-
- **Testable**: Requirement validation can be verified through story file parsing and matching tests
|
|
27
|
-
|
|
28
|
-
## Acceptance Criteria
|
|
29
|
-
|
|
30
|
-
- [ ] **Core Functionality**: Plugin validates that @req annotations reference requirements that actually exist in the target story files
|
|
31
|
-
- [ ] **Quality Standards**: Validation handles various requirement formats and story file structures
|
|
32
|
-
- [ ] **Integration**: Works with existing file validation and annotation parsing logic
|
|
33
|
-
- [ ] **User Experience**: Provides clear error messages when requirements are not found in story files
|
|
34
|
-
- [ ] **Error Handling**: Gracefully handles malformed story files, missing sections, or parsing errors
|
|
35
|
-
- [ ] **Documentation**: Requirement validation behavior is documented with examples of supported formats
|
|
36
|
-
|
|
37
|
-
## Requirements (Current Implementation or To Be Implemented)
|
|
38
|
-
|
|
39
|
-
- **REQ-DEEP-PARSE**: Parse story file content to identify available requirements
|
|
40
|
-
- **REQ-DEEP-MATCH**: Match @req annotation references against actual requirements in story files
|
|
41
|
-
- **REQ-DEEP-FORMAT**: Support multiple requirement formats (REQ-XXX-YYY, bullet points, numbered lists)
|
|
42
|
-
- **REQ-DEEP-SECTION**: Handle requirements in different story file sections (Requirements, Acceptance Criteria, etc.)
|
|
43
|
-
- **REQ-DEEP-CACHE**: Cache parsed story file content to avoid re-parsing on every validation
|
|
44
|
-
- **REQ-DEEP-ERROR**: Provide specific error messages when requirements are not found in story files
|
|
45
|
-
|
|
46
|
-
## Dependencies
|
|
47
|
-
|
|
48
|
-
- 005.0-DEV-ANNOTATION-VALIDATION (deep validation needs annotation format parsing)
|
|
49
|
-
- 006.0-DEV-FILE-VALIDATION (deep validation builds on file existence validation)
|
|
50
|
-
- 007.0-DEV-ERROR-REPORTING (deep validation needs clear error reporting for requirement mismatches)
|
|
51
|
-
|
|
52
|
-
**Dependency Rules**:
|
|
53
|
-
|
|
54
|
-
- Story numbers MUST be greater than all dependency story numbers
|
|
55
|
-
- Dependencies should be from in-scope stories when possible
|
|
56
|
-
- Cross-release dependencies should be clearly justified
|
|
57
|
-
- No circular dependencies allowed
|
|
58
|
-
|
|
59
|
-
## Implementation Notes (Optional)
|
|
60
|
-
|
|
61
|
-
**Technical Considerations**:
|
|
62
|
-
|
|
63
|
-
- Implement robust markdown parsing to extract requirements from story files
|
|
64
|
-
- Support multiple requirement identification patterns (REQ-XXX-YYY, numbered bullets, etc.)
|
|
65
|
-
- Consider performance implications of parsing story files during linting
|
|
66
|
-
- Provide caching mechanisms to avoid repeated file parsing
|
|
67
|
-
|
|
68
|
-
**Integration Points**:
|
|
69
|
-
|
|
70
|
-
- Extend existing file validation logic to include content parsing
|
|
71
|
-
- Integrate with annotation parsing to extract requirement references
|
|
72
|
-
- Work with error reporting system to provide detailed mismatch information
|
|
73
|
-
- Support various story file formats and structures
|
|
74
|
-
|
|
75
|
-
**Requirement Identification Strategies**:
|
|
76
|
-
|
|
77
|
-
- **Explicit Requirements**: Lines starting with "REQ-" or "\*\*REQ-"
|
|
78
|
-
- **Acceptance Criteria**: Checkbox items in acceptance criteria sections
|
|
79
|
-
- **Numbered Requirements**: Numbered list items in requirements sections
|
|
80
|
-
- **Custom Patterns**: Configurable regex patterns for project-specific formats
|
|
81
|
-
|
|
82
|
-
**Content Parsing Approach**:
|
|
83
|
-
|
|
84
|
-
- Parse markdown structure to identify sections
|
|
85
|
-
- Extract requirement identifiers using multiple strategies
|
|
86
|
-
- Build searchable index of requirements per story file
|
|
87
|
-
- Cache parsing results with file modification time tracking
|
|
88
|
-
|
|
89
|
-
**Performance Considerations**:
|
|
90
|
-
|
|
91
|
-
- Parse story files only when @req annotations reference them
|
|
92
|
-
- Cache parsed content with file modification timestamps
|
|
93
|
-
- Use incremental parsing for large story files
|
|
94
|
-
- Provide configuration options to disable deep validation for performance
|
|
95
|
-
|
|
96
|
-
**Testing Strategy**:
|
|
97
|
-
|
|
98
|
-
- Unit tests for markdown parsing with various story file formats
|
|
99
|
-
- Integration tests with real story files and annotation patterns
|
|
100
|
-
- Performance tests with large story files and many annotations
|
|
101
|
-
- Edge case testing with malformed markdown and unusual requirement formats
|
|
102
|
-
|
|
103
|
-
## Definition of Done
|
|
104
|
-
|
|
105
|
-
- [ ] All acceptance criteria met
|
|
106
|
-
- [ ] Code reviewed and approved
|
|
107
|
-
- [ ] Tests written and passing
|
|
108
|
-
- [ ] Documentation updated
|
|
109
|
-
- [ ] Deployed to appropriate environment
|
|
110
|
-
- [ ] Stakeholder acceptance confirmed
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
# Developer User Story Map - ESLint Plugin Traceability
|
|
2
|
-
|
|
3
|
-
## Journey Steps (Columns)
|
|
4
|
-
|
|
5
|
-
| **Setup Plugin** | **Write Code** | **Validate Annotations** | **Fix Issues** | **Maintain Quality** |
|
|
6
|
-
| ------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------- | ----------------------------------------------------------- | --------------------------------------------------------- | --------------------------------------------- |
|
|
7
|
-
| _Install and configure the ESLint plugin in their project to start enforcing traceability_ | _Write functions and code branches with proper @story and @req annotations_ | _Run linting to check that annotations exist and are valid_ | _Address any traceability violations found by the linter_ | _Keep annotations up-to-date as code evolves_ |
|
|
8
|
-
| **Installation** | **Function Annotations** | **Annotation Validation** | **Error Resolution** | **Ongoing Maintenance** |
|
|
9
|
-
| **Configuration** | **Branch Annotations** | **File Reference Validation** | **Quick Fixes** | **Ongoing Maintenance** |
|
|
10
|
-
|
|
11
|
-
## Personas
|
|
12
|
-
|
|
13
|
-
- 🎯 **PRIMARY**: Developer - _A software developer who needs to maintain bidirectional traceability between code and requirements to ensure code quality and enable requirement validation through test execution_
|
|
14
|
-
- 👥 **Team Lead** - _A technical lead who needs to ensure team compliance with traceability standards across the codebase_
|
|
15
|
-
- 🔧 **QA Engineer** - _A quality assurance engineer who needs to validate that requirements are properly implemented and traceable through code_
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
# User Story Map with Releases
|
|
20
|
-
|
|
21
|
-
| **Release 0.1 (Core Validation)** (Planned) | **Setup Plugin** | **Write Code** | **Validate Annotations** | **Fix Issues** | **Maintain Quality** |
|
|
22
|
-
| ------------------------------------------- | ----------------------- | ------------------------------ | ------------------------------- | ------------------------- | --------------------------- |
|
|
23
|
-
| **Plugin Foundation** | 001.0-DEV-PLUGIN-SETUP | 003.0-DEV-FUNCTION-ANNOTATIONS | 005.0-DEV-ANNOTATION-VALIDATION | 007.0-DEV-ERROR-REPORTING | 009.0-DEV-MAINTENANCE-TOOLS |
|
|
24
|
-
| **Basic Rules** | 002.0-DEV-ESLINT-CONFIG | 004.0-DEV-BRANCH-ANNOTATIONS | 006.0-DEV-FILE-VALIDATION | 008.0-DEV-AUTO-FIX | 010.0-DEV-DEEP-VALIDATION |
|
|
25
|
-
| | - | - | - | - | - |
|
|
26
|
-
|
|
27
|
-
| **Release 0.2 (Enhanced Features)** (Future) | **Setup Plugin** | **Write Code** | **Validate Annotations** | **Fix Issues** | **Maintain Quality** |
|
|
28
|
-
| -------------------------------------------- | --------------------------- | ---------------------------- | ---------------------------- | --------------------------- | ------------------------- |
|
|
29
|
-
| **Advanced Validation** | 011.0-DEV-IDE-INTEGRATION | 013.0-DEV-SMART-SUGGESTIONS | 015.0-DEV-REAL-TIME-FEEDBACK | 016.0-DEV-BULK-FIXES | 018.0-DEV-QUALITY-METRICS |
|
|
30
|
-
| **Developer Experience** | 012.0-DEV-PROJECT-TEMPLATES | 014.0-DEV-ANNOTATION-HELPERS | - | 017.0-DEV-GUIDED-RESOLUTION | 019.0-DEV-DASHBOARD |
|
|
31
|
-
| | - | - | - | - | - |
|
|
32
|
-
|
|
33
|
-
---
|
|
34
|
-
|
|
35
|
-
## Release Details
|
|
36
|
-
|
|
37
|
-
### Release 0.1: Core Validation (Planned)
|
|
38
|
-
|
|
39
|
-
**Goal**: Provide essential ESLint rules that enforce @story and @req annotations on functions and code branches, with validation that referenced files exist and contain the referenced requirements.
|
|
40
|
-
**Success Metric**: Developers can run ESLint and receive clear feedback when traceability annotations are missing, incorrect, or point to non-existent files/requirements.
|
|
41
|
-
**Scope**: Basic plugin setup, core validation rules, error reporting, and simple auto-fix capabilities for common issues.
|
|
42
|
-
|
|
43
|
-
**Stories by Category:**
|
|
44
|
-
|
|
45
|
-
- **Plugin Foundation**: 001.0-DEV-PLUGIN-SETUP (ESLint plugin structure), 002.0-DEV-ESLINT-CONFIG (configuration setup)
|
|
46
|
-
- **Core Annotations**: 003.0-DEV-FUNCTION-ANNOTATIONS (validate @story/@req on functions), 004.0-DEV-BRANCH-ANNOTATIONS (validate annotations on branches)
|
|
47
|
-
- **Validation Logic**: 005.0-DEV-ANNOTATION-VALIDATION (check annotation format), 006.0-DEV-FILE-VALIDATION (verify story files exist)
|
|
48
|
-
- **Developer Support**: 007.0-DEV-ERROR-REPORTING (clear error messages), 008.0-DEV-AUTO-FIX (simple auto-fixes)
|
|
49
|
-
- **Ongoing Maintenance**: 009.0-DEV-MAINTENANCE-TOOLS (update helpers)
|
|
50
|
-
- **Deep Validation**: 010.0-DEV-DEEP-VALIDATION (requirement content validation)
|
|
51
|
-
|
|
52
|
-
**Total**: 10 stories covering complete basic traceability enforcement workflow
|
|
53
|
-
|
|
54
|
-
### Release 0.2: Enhanced Features (Future)
|
|
55
|
-
|
|
56
|
-
**Goal**: Enhance developer experience with IDE integration, intelligent suggestions, advanced validation, and quality metrics to make traceability maintenance effortless and valuable.
|
|
57
|
-
**Success Metric**: Developers proactively maintain traceability annotations with minimal friction, and teams can track and improve their traceability coverage over time.
|
|
58
|
-
**Scope**: IDE extensions, smart auto-completion, deep requirement validation, bulk fixing tools, and traceability quality dashboards.
|
|
59
|
-
|
|
60
|
-
**Stories by Category:**
|
|
61
|
-
|
|
62
|
-
- **Developer Integration**: 011.0-DEV-IDE-INTEGRATION (VS Code extension), 012.0-DEV-PROJECT-TEMPLATES (starter templates)
|
|
63
|
-
- **Smart Features**: 013.0-DEV-SMART-SUGGESTIONS (intelligent annotation suggestions), 014.0-DEV-ANNOTATION-HELPERS (auto-completion)
|
|
64
|
-
- **Advanced Validation**: 015.0-DEV-REAL-TIME-FEEDBACK (live validation)
|
|
65
|
-
- **Productivity Tools**: 016.0-DEV-BULK-FIXES (mass update tools), 017.0-DEV-GUIDED-RESOLUTION (fix wizards)
|
|
66
|
-
- **Quality Management**: 018.0-DEV-QUALITY-METRICS (coverage tracking), 019.0-DEV-DASHBOARD (team dashboard)
|
|
67
|
-
|
|
68
|
-
**Total**: 9 stories covering advanced developer experience and team quality management
|
|
69
|
-
|
|
70
|
-
---
|
|
71
|
-
|
|
72
|
-
## Key Questions for Developer
|
|
73
|
-
|
|
74
|
-
### **Release 0.1 Questions:**
|
|
75
|
-
|
|
76
|
-
**Plugin Foundation:**
|
|
77
|
-
|
|
78
|
-
- How easy is it to add the ESLint plugin to an existing project without disrupting current workflow?
|
|
79
|
-
- What configuration options are needed to accommodate different project structures and story file locations?
|
|
80
|
-
- How should the plugin handle different story file naming conventions (.story.md vs other formats)?
|
|
81
|
-
|
|
82
|
-
**Core Annotations:**
|
|
83
|
-
|
|
84
|
-
- What types of functions should require @story annotations (all functions, only exported functions, only functions above certain complexity)?
|
|
85
|
-
- Which code branches need traceability annotations (if/else, try/catch, switch cases, loops)?
|
|
86
|
-
- How should the plugin handle generated code or third-party code that can't have annotations?
|
|
87
|
-
|
|
88
|
-
**Validation Logic:**
|
|
89
|
-
|
|
90
|
-
- How strict should annotation format validation be (exact format vs flexible parsing)?
|
|
91
|
-
- Should the plugin validate that @req annotations point to actual requirements within the referenced story file?
|
|
92
|
-
- How should the plugin handle story files that exist but are empty or malformed?
|
|
93
|
-
|
|
94
|
-
**Developer Support:**
|
|
95
|
-
|
|
96
|
-
- What information should be included in error messages to help developers fix annotation issues quickly?
|
|
97
|
-
- Which annotation errors can be auto-fixed safely (missing @story template, broken file paths)?
|
|
98
|
-
- How should the plugin integrate with existing ESLint configurations and other rules?
|
|
99
|
-
|
|
100
|
-
### **Release 0.2 Questions:**
|
|
101
|
-
|
|
102
|
-
**Developer Integration:**
|
|
103
|
-
|
|
104
|
-
- What IDE features would make maintaining traceability annotations feel natural and effortless?
|
|
105
|
-
- How can the plugin provide intelligent suggestions for @story references based on file context?
|
|
106
|
-
- What project templates would help new teams adopt traceability practices from the start?
|
|
107
|
-
|
|
108
|
-
**Advanced Validation:**
|
|
109
|
-
|
|
110
|
-
- Should the plugin parse story files to validate that referenced requirements actually exist in the content?
|
|
111
|
-
- How can the plugin detect when story files are updated but code annotations become stale?
|
|
112
|
-
- What real-time feedback mechanisms would help developers maintain traceability as they code?
|
|
113
|
-
|
|
114
|
-
**Quality Management:**
|
|
115
|
-
|
|
116
|
-
- What metrics help teams understand and improve their traceability coverage?
|
|
117
|
-
- How can teams track traceability quality trends over time?
|
|
118
|
-
- What visualization tools would help identify areas of the codebase with poor traceability?
|